20140426学习_struts2中校验的用法

学习重点就是怎么使用校验:struts2中的校验都可以分为两类:针对全部方法、针对某个方法。

1、手动编程校验

校验需要用到struts2的validate()方法,就要自己的action继承ActionSupport,重写校验方法validate。

例如:public MyAction extends ActionSupport{

String tel;     //手机号

....//getter  setter  

public String update(){

     return "success";

}

public void validate(){

     if(this.tel==null || "".equals(this.tel.trim())

                    this.addFieldError("tel","不能为空‘);

    else if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.tel).matches())  

        //正则表达式^1[358]\d{9}$  第一位是1,第二位是358其中一个,后面9个数字,因为java对\的处理所以写成\\d  $结束

                   this.addFieldError("tel","格式不正确‘);

 }

}

如果校验不正确会返回到input页面:在页面上使用<s:fielderror />输出提示信息。

如果对某个方法update()校验的话,把校验方法写成pulic void validateUpdate(){ }即可。就只校验update方法。

如果即有validate(){ } 又有validateUpdate(){ }  ,那么先调用后者validateUpdate再调用前者validate。

2、xml方式校验

在与要校验的action同一路径下,建立简写类名-validation.xml.

如public MyAction{ }  就建立MyAction-validation.xml

内容增加:

<validators>

     <field name="tel">

       <field-validator type="requiredString">

               <param name="trim">true</param>

               <message>不能为空</message>

      </field-validtor>

       <field-validator type="regex">

               <param name="expression">![CDATA[^1[358]\\d{9}$]]</param>

               <message>格式不正确</message>

      </field-validtor>

  </field>

</validators>

对某个方法的action的xml要命名为;类名-action名-validation.xml

如果两个xml判断冲突,以方法的为准。

3、关于xxx.properties

这个类型的文件存放的数值是unicode类型,文本编辑界面下都是看不懂的。所以在输入数值时候最好通过add。edit按钮编辑,myeclipse自动转换为unicode格式。

也可以通过jdk命令转换:native2ascii 原文件.properties 目标文件.properties

4、struts2标签jsp页面取值

只有在action中出现的属性,才能在<s:property value="属性名">直接使用,或者使用${属性名}

如果不是在action中出现的,而是其它方式(如request)的属性,则struts2标签的话需要用#取值

<s:property value="#request.属性名">

详细与ValueStack的内容有关,可以再研究下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值