Java JSF2.1条件字段验证

Java JSF2.1条件字段验证,java,jsf,jakarta-ee,jsf-2,richfaces,Java,Jsf,Jakarta Ee,Jsf 2,Richfaces,我有以下JSF2.1页面 这是我的豆子: public class UserBean { private String customerId; private String newUser= "0"; private String firstName; private String lastName; // Getters and seeters ommited. } 我需要通过以下方式验证此表单: 如果选择了“新用户”单选按钮,则应验证

我有以下JSF2.1页面






这是我的豆子:

public class UserBean {

    private String customerId;
    private String newUser= "0";
    private String firstName;
    private String lastName;

    // Getters and seeters ommited.
}
我需要通过以下方式验证此表单:

如果选择了“新用户”单选按钮,则应验证所有表单输入。如果选择了“现有用户”,我只需要验证客户Id

我尝试了Hibernate验证,还通过实现
javax.faces.validator.validator
接口尝试了自定义验证器

我能以某种方式实现这样的功能吗?

您可以编写一个程序来检查父UI组件,并仅在特定条件下执行验证。这很复杂。也许看看它的
@SkipValidation
注释

@SkipValidation(“{person.role eq'admin}”)
@必需的
@等于(“个人密码”)
@NotEquals(“密码”)
私有字符串密码;

自定义验证器出现了什么问题。。?为什么要将新用户的标志存储在字符串中?如何有条件地设置自定义验证器?将其存储为字符串有什么问题?好吧,我会使用布尔值或通过用户id查找。。。无论如何如果您的用户已经存储在数据库中,即有id,您不能签入验证器吗?如果没有-验证所有字段,如果是-仅验证客户id字段您可以检查条件(读取父组件属性),并且仅在通过运行验证逻辑的情况下。如果验证失败,这个逻辑会抛出ValidationException。谢谢,我解决了这个问题。