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