我正在尝试学习JSF进行演示项目。当我尝试将验证器添加到某些组件时,出现java.lang.ClassNotFoundException:com.test.validator.TestValidator

我的面孔配置看起来像这样

    <validator>
    <validator-id>Validator</validator-id>
    <validator-class>com.test.validator.TestValidator</validator-class>
    </validator>


验证器类

public class TestValidator implements Validator {


    @Override
    public void validate(FacesContext context, UIComponent componentToValidate,
            Object value) throws ValidatorException {
        //Add code

    }

}


最后是小面

     <f:validator validatorId="Validator"></f:validator>


我不确定是否遗漏了一些东西。感谢所有帮助。谢谢

最佳答案

我可以想到许多可能的原因:


TestValidator类缺少package声明,因此您实际上已经在默认程序包中声明了它...如@Jigar Joshi所述。
您尚未编译。
您尚未创建/更新包含该类的JAR。
您尚未将JAR包含在WAR / EAR中。
WAR / EAR(或Web服务器)缺少包含您的TestValidator所依赖的类的JAR文件。 (似乎不太可能...)
您尚未重新部署WAR / EAR。

关于java - 获取Validator类的ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6340178/

10-13 07:11