struts2的一些用法(四):部分数据验证

普通的数据验证是很简单的validate,就不谈了,直接说说XML的验证,具体解决一些问题;
注:普通的数据验证便是代码验证,个人习惯叫法而已;

顺便先说个简单的普通数据验证的技巧:动态的validate方法,我们通过struts.xml配置mothd方法名,故此我们还可以在validate+方法名(),编程动态的验证框架,如validateAdd();
注:无论validate+方法名或XML,只要在代码中配置到validate(),最终依然会执行validate(),切记;


情况:
    首先,我们知道从表单的递交到action,是通过两层;
    一层:数据转型;
    二层:拦截器;
    validate方法是属于拦截器的二层,因此当表单数据类型转换错误的时候,略先保存在fieldError中:
   
    底层代码理论:底层代码中是将错误存到fieldError中,明显他是个Map,如果validate与validateXXX一起验证一个数据,
               并同时添加两条错误信息,他会同时同通过一个key取出两个值来,因此他的value绝对是个List;
        fieldError底层代码的意义: map("key",List);
   
    jsp显示:
    Invalid field value for field "表单的属性".

1.局部数据转换错误验证
         改写数据转换错误时,发出的字符串Invalid field value for field "表单的属性".
         写法上与数据转换的资源文件类似,同样写在与action同级包内,如下;
         文件名:    action的类名.properties
         内容:      invalid.fieldvalue.age=age /u8f93/u5165/u9519/u8bef,/u8bf7/u91cd/u65b0/u9012/u4ea4
                    固定格式              属性名   输出的字符串信息

xml方式校验:
    xml存放位置以及命名方式:存放于同名action的包下,命名方式action的类名-validation.xml;
    注意:即使是配置文件验证也是需要继承ActionSupport
   
    校验类型:
        required :必填校验器(匹配非空);
            参数:trim(去掉两边)
           
        requiredstring :必填字符串校验;
            参数:trim
           
        int :int类型校验器;
            参数:max(最大数),min(最小数)
           
        double:double类型校验器;
            参数:max,min
        date :date类型校验器;
            参数:max(最大时间),min(最小时间)
           
        expression 表达式校验器:
       
        fieldexpression 字段表达式校验器(逻辑判断):
            参数:expression
        email :电子信箱验证;
       
        url: 网址验证;
        visitor visitor校验器:
        conversion 转换校验器:
        stringlength :字符串长度验证;
            参数:maxLength(最大长度),minLength(最小长度)
        regex :表达式验证;
            参数:expression(字符串),caseSensitive(是否区分大小写);
       
 具体格式如下:
  1.     <field name="name">
  2.         //name,是action的属性名;
  3.         <field-validator type="requiredstring">
  4.         //type,是校验类型
  5.             <param name="trim">true</param>
  6.             //name,参数名;value,参数值
  7.             <message>用户名不能为空</message>
  8.             //错误信息;
  9.         </field-validator>
  10.     </field>
 
    其中<field-validator />中还有一个属性short-circuit="true",他是是否执行短路的校验器;
    短路校验器:他是相当于与短路修饰符一样的存在,当匹配第一个遇到错误时,他直接返回到JSP界面,不会执行以后的匹配;



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值