Struts2 校验

时间:2024-04-30 13:05:45

Struts2校验格式:

  actionName-methodName-invalidation.xml  该配置文件必须和action类在同一个包下。

  

<?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="bean.oldPwd"> <field-validator type="requiredstring">
<param name="trim">true</param>
<message><![CDATA[必须输入旧密码]]></message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(([a-zA-Z0-9]{4,21})$)]]></param>
<message><![CDATA[密码格式不正确!]]></message>
</field-validator> </field> <field name="bean.pwd"> <field-validator type="requiredstring">
<param name="trim">true</param>
<message><![CDATA[必须输入新密码]]></message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(([a-zA-Z0-9]{4,21})$)]]></param>
<message><![CDATA[密码格式不正确!,请输入4~20位的数字和字母的组合]]></message>
</field-validator> </field> <field name="bean.rePwd"> <field-validator type="requiredstring">
<param name="trim">true</param>
<message><![CDATA[必须再次输入新旧密码]]></message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(([a-zA-Z0-9]{4,21})$)]]></param>
<message><![CDATA[密码格式不正确!,请输入4~20位的数字和字母的组合]]></message>
</field-validator> </field> </validators>

其中遇到几个问题,导致验证不执行。

1)methodName写了Action类中执行的方法名称了,应该写的是Struts配置文件中的name

2)出现异常:Referenced file contains errors (http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd)

原因是该dtd已经过期,以后只能使用

<?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">