<h:inputXxx validator>
使用属性和<f:validator>
标签有什么区别?
<h:inputText ... validator="someValidator">
<h:inputText ...>
<f:validator validatorId="someValidator" />
我什么时候应该使用哪一个?
<h:inputXxx validator>
使用属性和<f:validator>
标签有什么区别?
<h:inputText ... validator="someValidator">
<h:inputText ...>
<f:validator validatorId="someValidator" />
我什么时候应该使用哪一个?
该validator
属性允许您引用独立的托管 bean 方法,而不仅仅是验证器 ID,如下所示:
<h:inputSomething validator="#{bean.validate}" />
使用validate(FacesContext context, UIComponent component, Object value)
支持 bean 类中的方法而不需要Validator
实现。
允许您在<f:validator>
输入上注册多个验证器,而不是仅通过validator
属性注册一个。
使用哪一个取决于具体的功能要求。只需选择需要最少代码量的代码,这样您就可以得到干净的代码。
假设我们这里有 Spring Configs。
然后在第一种情况下,“fooValidator”将是一个<beanId>
,并且将调用相应的类(即验证器类)并进行验证。
在第二种情况下,应该类似于"#{someBean.validationMethod}"
. 在这种情况下,将调用验证方法。
第一个是好方法。因为在这种情况下,我们的验证器类扩展了 JSF 的默认 Validator 接口并实现了 validate() 方法。
第二个很好,如果您想自定义验证过程。
First 将在您的页面呈现时被调用,并且不太确定 second。但我认为,这也是在渲染时调用的。