Jboss 从验证程序内部访问请求参数

Jboss 从验证程序内部访问请求参数,jboss,seam,Jboss,Seam,是否有适当的方法从验证器内部访问其他表单字段? 除了以下解决方案,还有其他解决方案吗 context.getViewRoot().findComponent(“formid:exampleField:example”)? f、 e我想验证自定义验证器中的城市字段,并检查国家是否为美国。重新阅读您的问题,我将解释为: “您想编写一个自定义验证器,检查是否存在城市字段,国家字段是否等于‘US’” 因此,我将以以下方式考虑这一点: 首先创建一个验证程序接口: @Documented @Validato

是否有适当的方法从验证器内部访问其他表单字段? 除了以下解决方案,还有其他解决方案吗

context.getViewRoot().findComponent(“formid:exampleField:example”)?


f、 e我想验证自定义验证器中的城市字段,并检查国家是否为美国。

重新阅读您的问题,我将解释为:

“您想编写一个自定义验证器,检查是否存在城市字段,国家字段是否等于‘US’”

因此,我将以以下方式考虑这一点:

首先创建一个验证程序接口:

@Documented
@ValidatorClass(value=CountryEqualsUSValidator.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface CountryEqualsUS {

    String message() default "The country should be US for the city provided";

}
然后创建一个验证程序类:

public class CountryEqualsUSValidator implements Validator<CountryEqualsUS> {

    public void initialize(CountryEqualsUS arg0) {
    }

    public boolean isValid(Object value) {

        if(value != null && value instanceof YourBeanClass) {

            YourBeanClass yourBeanClass = (YourBeanClass) value;

            if(/*some test logic here*/) {
                return true;
            else {
                return false;
            }

        }

        return false;

    }

}
最后,在controller/action类上,当表单提交时,city是一个要检查其国家/地区的值,添加此方法并调用它:

public boolean doValidation(YourBeanClass yourBeanClass) {

    ClassValidator requestValidator = new ClassValidator(yourBeanClass.getClass());
    InvalidValue[] validationMessages = requestValidator.getInvalidValues(yourBeanClass);

    if (validationMessages != null && validationMessages.length > 0) {

        for (int i = 0; i < validationMessages.length; i++) {

            //Add a validation message to be displayed to the user

        }

        return false;

    }
        return true;
}
public boolean doValidation(YourBeanClass YourBeanClass){
ClassValidator requestValidator=新的ClassValidator(yourBeanClass.getClass());
InvalidValue[]validationMessages=requestValidator.getInvalidValues(yourBeanClass);
if(validationMessages!=null&&validationMessages.length>0){
for(int i=0;i
您找到问题的答案了吗?
public boolean doValidation(YourBeanClass yourBeanClass) {

    ClassValidator requestValidator = new ClassValidator(yourBeanClass.getClass());
    InvalidValue[] validationMessages = requestValidator.getInvalidValues(yourBeanClass);

    if (validationMessages != null && validationMessages.length > 0) {

        for (int i = 0; i < validationMessages.length; i++) {

            //Add a validation message to be displayed to the user

        }

        return false;

    }
        return true;
}