validation - OmniFaces 相当于 Seam <s :validateForm> to validate multiple fields

标签 validation jsf omnifaces

在接缝面中可以选择验证整个表单。 我可以导入:

xmlns:s="http://jboss.org/seam/faces"

并使用:

<s:validateForm validatorId="oneOrMorePrimaryIndicesValidator"/>

现在我们必须使用全向面而不是接缝面。

omnifaces 中是否有等效的功能可以完成类似的工作?

最佳答案

取决于问题中并不完全清楚的具体功能要求。

如果您想验证一个或多个字段是否已填写,请使用现有的 <o:validateOneOrMore> :

<o:validateOneOrMore components="foo bar baz" />
<h:inputText id="foo" />
<h:inputText id="bar" />
<h:inputText id="baz" />

或者,如果您想为多个字段实现自定义验证器,请使用 <o:validateMultiple> :

<o:validateMultiple components="foo bar baz" validator="#{oneOrMorePrimaryIndicesValidator}" />
<h:inputText id="foo" />
<h:inputText id="bar" />
<h:inputText id="baz" />

由此#{oneOrMorePrimaryIndicesValidator}指的是实现 MultiFieldValidator 的托管 bean(可以是 JSF 或 CDI) :

@Named
@RequestScoped // Can also be @ApplicationScoped, depending on if validator should hold state.
public class OneOrMorePrimaryIndicesValidator implements MultiFieldValidator {

    @Override
    public boolean validateValues(FacesContext context, List<UIInput> components, List<Object> values) {
        // ...
    }

}

它应该返回 false如果值无效,否则 true .

无论哪种方式,一般使用说明,例如components , message , invalidateAllshowMessageFor属性可以在 ValidateMultipleFields 中找到javadoc。


完全不同的替代方法是使用 <o:validateBean> 使用 JSR303 bean 验证组来使用 JSR303 ConstraintValidator<SomeGroupAnnotation, Bean> 在类级别验证实体。这样的验证器不仅可以在 JSF(Web 层)中使用,而且还可以在例如 Web 层中使用。 JPA(数据层)。例如

<h:inputText value="#{bean.entity.foo}" />
<h:inputText value="#{bean.entity.bar}" />
<h:inputText value="#{bean.entity.baz}" />
<o:validateBean value="#{bean.entity}" validationGroups="com.example.SomeGroup" />

如果没有当前模型和验证器的具体代码,很难给出更具体的示例。

关于validation - OmniFaces 相当于 Seam <s :validateForm> to validate multiple fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28456698/

相关文章:

jsf - NoAutoGeneratedIdViewHandler 和生产?

c# - 正则表达式号码电话

jquery - 哪些RichFaces组件使用prototype,哪些使用jquery?

jsf - StateHelper的作用和生命周期是什么?

javascript - 在 p :selectOneMenu using JS 中选择选项

jsf-2 - ajax 请求中抛出 ViewExpiredException 时重定向

validation - 如何访问 Parsley Validation 中的元素属性

ruby-on-rails - rails : list accepted values of "validates :inclusion" field

ruby-on-rails - rails 3 : Display validation errors for a form (not saving an ActiveRecord model)

jsf - 如何使用 JSF/OmniFaces/PrimeFaces 嵌入 SVG 图像?