我正在开发一个自定义的JSF UIInput,它期望来自用户的特制值。为了验证用户输入,我需要运行一系列检查,这些检查仅涉及手头的应用程序。这不仅仅是普通的电子邮件或电话输入字段。它是一个文本输入,其复合值需要解构为部分,每个部分都需要进行验证。
我设法自己创建组件。
@FacesComponent("MyComponent")
public class MyComponent extends UIInput {
public String getFamily() {...}
encodeBegin() {...}
encodeEnd() {...}
}
mycomponent.taglib.xml
捆绑在META-INF
中,我可以成功使用和测试该组件。
我还实现了一个验证器类,可以完成所有工作。它准备好了。
public class AutomationDetectionValidator implements Validator {
public void validate(...) throws ValidatorException {...}
}
但是,我需要在此组件中包含一个自定义验证器作为默认值。我可以按如下方式手动执行此操作:
<custom:myComponent>
<f:validator validatorId=”myComponentValidator”/>
</custom:myComponent>
但预期用量为
<custom:myComponent/>
验证器应该自动存在。
我现在一直在谷歌搜索,但我能找到我们不想要的用法的基本例子。
答案 0 :(得分:1)
只需将其添加到组件的构造函数中即可。
public MyComponent() {
addValidator(new AutomationDetectionValidator());
}