jsp:<s:form id="userForm" action="/user/register.do" validate="false">
<table width="200" border="0">
<tbody>
<tr>
<td>
<s:textfield name="userName" label="User Name"></s:textfield>
</td>
</tr>
<tr>
<td>
<s:password name="password" label="Password" />
</td>
</tr>
<tr>
<td>
<s:password label="Confirm Password" name="cfmPassword" />
</td>
</tr>
<tr>
<td>
<s:textfield name="nickname" label="Nickname" />
</td>
</tr>
<tr>
<td>
<s:textfield name="email" label="Email" />
</td>
</tr>
<tr>
<td>
<s:select label="City" name="cityId" list="cities" listKey="id"
listValue="cityName" />
</td>
</tr>
<tr>
<td>
<s:textarea name="description" rows="10" cols="20"
label="Self-Description" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
 
<s:submit label="Submit User Info" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</tbody>
</table>
</s:form>
validation.xml:<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.02//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- 校验文件的根元素 -->
<validators>
<field name="userName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type user name</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,10})]]></param>
<message>You user name length should be 4 to 10</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type password</message>
</field-validator>
</field> <field name="cfmPassword">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type confirm password</message>
</field-validator>
<!--<field-validator type="fieldexpression">
<param name="expression"><![CDATA[(password==cfmPassword)]]></param>
<message>Confirm passoword must be equal to password</message>
</field-validator>
--></field>
<validator type="expression">
<param name="expression">password.equals(cfmPassword)</param>
<message>Confirm passoword must be equal to password</message>
</validator>
<!--<validator type="expression">
<param name="expression"><![CDATA[password == cfmPassord]]></param>
<message>Password and confirm password do not match!</message>
</validator>
--><field name="nickname">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type nickname</message>
</field-validator>
</field>
<field name="email">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type email</message>
</field-validator>
<field-validator type="email">
<message>Your email is not a valid email address</message>
</field-validator>
</field>
<field name="cityId">
<field-validator type="fieldexpression">
<param name="expression">(city!=null)</param>
<message>You must select a city</message>
</field-validator>
</field>
<field name="description">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type self description</message>
</field-validator>
</field>
</validators>换成下面的写法也不生效: <validator type="expression">
<param name="expression">password==cfmPassword</param>
<message>Confirm passoword must be equal to password</message>
</validator>
奇了怪了。
<table width="200" border="0">
<tbody>
<tr>
<td>
<s:textfield name="userName" label="User Name"></s:textfield>
</td>
</tr>
<tr>
<td>
<s:password name="password" label="Password" />
</td>
</tr>
<tr>
<td>
<s:password label="Confirm Password" name="cfmPassword" />
</td>
</tr>
<tr>
<td>
<s:textfield name="nickname" label="Nickname" />
</td>
</tr>
<tr>
<td>
<s:textfield name="email" label="Email" />
</td>
</tr>
<tr>
<td>
<s:select label="City" name="cityId" list="cities" listKey="id"
listValue="cityName" />
</td>
</tr>
<tr>
<td>
<s:textarea name="description" rows="10" cols="20"
label="Self-Description" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
 
<s:submit label="Submit User Info" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</tbody>
</table>
</s:form>
validation.xml:<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.02//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- 校验文件的根元素 -->
<validators>
<field name="userName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type user name</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,10})]]></param>
<message>You user name length should be 4 to 10</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type password</message>
</field-validator>
</field> <field name="cfmPassword">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type confirm password</message>
</field-validator>
<!--<field-validator type="fieldexpression">
<param name="expression"><![CDATA[(password==cfmPassword)]]></param>
<message>Confirm passoword must be equal to password</message>
</field-validator>
--></field>
<validator type="expression">
<param name="expression">password.equals(cfmPassword)</param>
<message>Confirm passoword must be equal to password</message>
</validator>
<!--<validator type="expression">
<param name="expression"><![CDATA[password == cfmPassord]]></param>
<message>Password and confirm password do not match!</message>
</validator>
--><field name="nickname">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type nickname</message>
</field-validator>
</field>
<field name="email">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type email</message>
</field-validator>
<field-validator type="email">
<message>Your email is not a valid email address</message>
</field-validator>
</field>
<field name="cityId">
<field-validator type="fieldexpression">
<param name="expression">(city!=null)</param>
<message>You must select a city</message>
</field-validator>
</field>
<field name="description">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type self description</message>
</field-validator>
</field>
</validators>换成下面的写法也不生效: <validator type="expression">
<param name="expression">password==cfmPassword</param>
<message>Confirm passoword must be equal to password</message>
</validator>
奇了怪了。
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You must type password</message>
</field-validator>
</field><field name="cfmPassword">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>You must type confirm password</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[!(!password.equals("") && !password.equals(cfmPassword))]]></param>
<message>Confirm passoword must be equal to password</message>
</field-validator>
</field>
<param name="expression">password==cfmPassword</param>
<message>Confirm passoword must be equal to password</message>
</validator>