struts2自定义验证规则及配置使用

如何自定义验证规则
   *  在jsp页面增加一个组件
          <s:textfield name="age" />
  
   * 在action中增加private Integer age属性
   
   * 自定义验证规则
           public class AgeValidate extends FieldValidatorSupport {
				//此验证是拦截器验证所以会在调用每个action的方法前调用,可以使用@SkipValidation注解方法跳过校验 如跳到页面的方法
				public void validate(Object object) throws ValidationException {
					//object  cn.itcast.validate.ValidateXmlAction
			        System.out.println("object  "+object);
			        
			        //获取字段的名称
			        String fieldName=this.getFieldName();
			        
			        //获取字段的值
			        Object fieldValue=this.getFieldValue(fieldName, object);
			        
			        //判断字段的值是否是Integer类型
			        if(fieldValue instanceof java.lang.Integer){
			            //转化为Integer类型
			            Integer age=(Integer)fieldValue;         
			        
			        //和0比对
			           //如果小于0,增加错误提示信息
			           if(age<0){
			        	   this.addFieldError(fieldName, object);
			           }
			        }
				}
			}
			
	* 注册验证规则
	    * 在当前工程的src下创建validators.xml文件
	       * 该文件的规范在xwork-core-2.1.6.jar\xwork-validator-config-1.0.dtd
	       * 配置如下
	               <?xml version="1.0" encoding="UTF-8"?>
					<!DOCTYPE validators PUBLIC
					  		"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
					  		"http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
					<validators>
					    <!--validator声明验证规则
					         * name:验证规则的名称(唯一)
					         * class验证规则对应的类
					       -->
					  <validator name="ageValidate" class="cn.itcast.validate.AgeValidate"></validator>
					</validators> 	
					
     * 在ValidateXmlAction-validateXmlAction_login-validation.xml增加如下配置
                <!-- 验证年龄 -->
			    <field name="age">
			       <field-validator type="ageValidate">
			           <message><![CDATA[年龄不能为负数]]></message>
			       </field-validator>
			    </field>
			    
	 * 测试		    
     					
	       
	    
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值