基于XML配置方式实现对action的所有方法进行校验

最近在看黎活明老师的Struts2.1.8的教程,今天遇到一个问题,倒腾了很久,终于解决了,在寻找解决方法的时候发现网上都没找到答案,所以特地上来发一篇博客,希望能帮助到和我一样在网上搜索解决方法的苦逼自学者。

这是基于XML配置方式实现对action的所有方法进行校验这一节课的视频,由于黎活明老师用的是struts2.1,而我现在用的是struts2.3.16.3,导入的包也有些不同(可以自己网上搜),JDK是1.6的(因为之前用1.8报错了,网上说1.8还不完善,所以换回MyEclipse自带的1.6)。

首先贴出黎活明老师的验证器

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"> 
<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>用户名不能为空!</message>
        </field-validator>
    </field>
    <field name="mobile">
        <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>
如果直接导入黎活明老师的项目,验证器就没问题,但是如果只是粘贴他的代码进去,就会报错

然后我们可以在我们下载的struts2.3.16.3包(解压)--apps文件夹里找一个例子解压(如struts2-portlet)--WEB-INF文件夹--classes文件夹--validators.xml(可以用记事本方式打开)里面可以找到

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator Config 1.0//EN"
        "http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd">
代替前面的开头,但是这时候又会报另一个错
ognl.NoSuchPropertyException没有对应属性异常错误,最后旁边的朋友翻例子 struts2.3.16.3例子发现
<field-validator type="regex">
		     <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
		     <message>手机号格式不正确!</message>
		</field-validator>

regex正则表达式验证的格式变了,我解决后的校验器代码如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>用户名不能为空</message>
        </field-validator>
    </field>
    <field name="mobile">
        <field-validator type="requiredstring">
            <message>手机号不能为空</message>
        </field-validator>
        <field-validator type="regex">
           <param name="regex"><![CDATA[^1[358]\d{9}$]]></param>
           <message>手机格式不正确</message>
     	</field-validator>
    </field>
</validators>
regex 正则表达式验证的param的name属性应该和type一样

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值