【问题标题】:Is it possible to add custom validation to JSF beans?是否可以向 JSF bean 添加自定义验证?
【发布时间】:2012-05-05 01:50:37
【问题描述】:

这是关于 JSF 中的验证。我知道有两种验证方式

  1. Bean 验证
  2. JSF 验证

我想编写自己的验证类。是否可以将自定义验证类添加到 JSF bean?

我不想在我的 facelett 中有验证类。仅在 Bean 中...

【问题讨论】:

    标签: java validation jsf-2


    【解决方案1】:

    是的,您可以像这样编写自己的验证器类:

    @FacesValidator("customValidator")
    public class CustomValidator implements Validator{
    
        public void validate(FacesContext context, UIComponent component,
                Object value) throws ValidatorException {
            // do your validation here
        }
    }
    

    并在你的 facelets 中使用它:

    <h:inputText value="#{myBean.myValue}">
      <f:validator validatorId="customValidator" />
    </h:inputText>
    

    注意@FacesValidator注解的内容必须匹配f:validatorvalidatorId属性。

    此外,jsf 输入元素有一个validator 属性。您可以使用此属性将验证委托给您的支持 bean 中的特殊方法。

    public void validateInput(FacesContext context, 
                              UIComponent component, Object object) {
      // your validation with 'object' here
    }
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 这不是我想要的。它将验证添加到 jsf 页面。
      • 就在那里,你需要实现Validator接口来创建你自己的验证器。你到底想要什么?
      • 在 Bean 中,您可以使用注释检查值。相似的东西。我想编写一个验证器来验证 Bean 中的输入值。而且我不想在 facelet 中拥有
      • 那你为什么不能使用简单的java代码来检查你的bean中的值呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      • 2013-12-07
      • 2022-11-08
      相关资源
      最近更新 更多