定位到校验未通过的校验器之后,我们需要知道详情。校验错误信息保存在属性文件里面。我们增加属性文件email.properties.内容如下:
email.error=非法的email
用Native2ascii转换以下。规则配置修改如下:
<validator name="emailValidator" classname="com.wide.test.EmailValidator" method="validateEmail" methodParams="java.lang.Object,org.apache.commons.validator.Field" msg="email.error"/> |
测试代码:
//创建ValidatorResources实例,这里取得验证规则信息。可以同时加载多个规则文件。 ValidatorResources resources = new ValidatorResources( EmailValidatorTest.class.getResourceAsStream("email-rules.xml"));
//创建要校验的bean ValueBean bean = new ValueBean(); bean.setEmail("hhh@163.com");
//创建校验器 Validator validator = new Validator(resources,"valueBean");
//设定要校验的bean validator.setParameter(Validator.BEAN_PARAM,bean);
//校验 ValidatorResults results = validator.validate();
//解释校验结果,取得对email属性校验的结果 ValidatorResult result = results.getValidatorResult("email");
//加载属性文件 ResourceBundle bundle = ResourceBundle.getBundle("com.wide.test.user.message"); //如果校验未通过就显示错误信息 if(!result.getResult("emailValidator")){ ValidatorAction action = resources.getValidatorAction("emailValidator"); System.out.println(bundle.getString(action.getMsg())); } |