<h:inputXxx 验证器>属性和 <f:validator> 标签之间的区别



使用<h:inputXxx validator>属性和<f:validator>标签有什么区别?

<h:inputText ... validator="someValidator">
<h:inputText ...>
    <f:validator validatorId="someValidator" />               

我应该在什么时候使用哪一个?

validator属性允许您引用一个独立的托管bean方法,而不仅仅是验证器ID,像这样:

<h:inputSomething validator="#{bean.validate}" />

在支持bean类中使用validate(FacesContext context, UIComponent component, Object value)方法,而不需要Validator实现。

<f:validator>允许您通过validator属性在输入上注册多个验证器,而不是只有一个。

使用哪一个取决于具体的功能需求。只要选择需要最少代码的那个,这样你最终会得到干净的代码。

让我们假设这里有Spring配置。

在第一种情况下,"fooValidator"将是一个<beanId>和相应的类(i。E验证器类)将被调用,验证将发生。

在第二种情况下,应该是"#{someBean.validationMethod}"。在这种情况下,验证方法将被调用。

第一个是好的方法。因为在这种情况下,我们的验证器类扩展了JSF的默认validator接口并实现了validate()方法。

如果您想自定义验证过程,则可以选择第二个。

First将在渲染页面时调用,而second则不太确定。但是我想,在渲染的时候也叫

相关内容

  • 没有找到相关文章

最新更新