struts2中的输入校验

在struts2中我们可以对action中的所有方法进行校验,也可以对action中某个指定的方法进行校验。

对于输入校验,struts2提供了两种实现方法

 1.采用手工编写代码实现

 2.基于xml配置方式实现

具体的实现如下:

 1.如果是校验action中的所有方法,则需要继承ActionSupport这个类,并且需要重写里面的validate()这个方法,

在validate()方法里做具体的验证,比如验证手机号:mobilephone;

需要在action里做如下处理:

if(mobilephone==null||"".equals(mobilephone.trim())){

   this.addFieldError("手机号码不能为空",mobilephone);

}

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

  this.addFieldError("手机号格式不对",mobilephone);

}

然后在struts.xml中配置一个<result name="input">index.jsp</result>

最后从index.jsp页面中通过<s:fielderror/>输出相关的错误信息

前面需要加入struts标签<%@ taglib uri="struts-tags" prefix="s"%》

         如果只需要验证action中某个指定的方法,eg:save方法

则:只需要validateSave就好了。。。也就是说validate+具体的需要验证的方法

2采用xml配置方法实现(推荐)

首先要在action类的同一个包下写对应的配置文件,且名字必须为:ActionClassName-validation.xml,当然action还是要去继承ActionSupport这个类,然后再对应的配置文件中写对应的属性的验证器:

eg"

<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <message>用户名不能为空</message>
        </field-validator>
    </field>
    <field name="mobilephone">
        <field-validator type="requiredstring">
            <message>电话号码不能为空</message>
        </field-validator>
         <field-validator type="regex">
            <param name="expression"><![CDATA[^1[358]/d{9}$]]></param>
            <message>电话号码格式不对</message>
        </field-validator>
    </field>
</validators>

值得注意的一点是:要在xml中写相应的文本必须要:<![CDATA[]]>的格式。。。

 

如果是对action中具体的某个方法进行校验:

则命名为:ActionClassName-ActionName-validation.xml

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值