客户端校验的时候直接使用<s:form validate='true'>就可以了,注意:
1.不能去掉theme=simple
2.不能使用key标签来取得国际化中的参数。而应该使用${getText('xxx')}的方式来取得信息。
其实这个客户端校验很烂,大家别用了。我的观点。呵呵
int 整数;
double 实数;
date 日期;
expression 两数的关系比较;
email Email地址;
url 网址
visitor 使用visitor模式 对应复合类型 比如自定义User Person等
RegistAction-validation.xml
<validators>
<field name="user">
<field-validator type="visitor">
<param name="context">hahaha</param>
<!--
在提示信息的前面加东西,message中为前面添加的东西
-->
<param name="appendPrefix">true</param>
<message>用户的:</message>
</field-validator>
</field>
</validators>
对应user类型 对应context
MyUser-hahaha-validation.xml
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入名字</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message>
</field-validator>
</field>
<field name="pass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入密码</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>您输入的密码只能是字母和数组,且长度必须在4到25之间</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年纪必须在1到150之间</message>
</field-validator>
</field>
<field name="birth">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-02-21</param>
<message>年纪必须在${min}到${max}之间</message>
</field-validator>
</field>
</validators>
conversion 转换错误 转换错误时的提示,应屏蔽掉默认提示:修改messageResource.properties中xwork.default.invalid.fieldvalue=,否则会出现两次提示
同时转换Action的properties文件中invalid.fieldvalue.person=xxx 这样不校验的出错信息会是这个值
regex 正则表达式验证;
required 是否为空;
requiredstring 必须字符;
stringlength 输入字符长度限制;
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="xxx">
</field>
</validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入名字</message>
<!--
<message>${getText("name.requried")}</message>
-->
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message>
<!--
<message>${getText("name.requried")}</message>
-->
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年纪必须在1到150之间</message>
<!--
<message>${getText("name.requried")}</message>
-->
</field-validator>
</field>
<field name="birth">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-02-21</param>
<message>年纪必须在${min}到${max}之间</message>
<!--
<message>${getText("name.requried")}</message>
-->
</field-validator>
</field>
<field name="repassword">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[(repassword == password)]]></param>
<message>两次输入密码不相同</message>
</field-validator>
</field>
<field name="email">
<field-validator type="email">
<message>您输入的电子邮件必须是一个合格的邮件地址!</message>
</field-validator>
</field>
<field name="initPrice">
<field-validator type="required">
<message>起拍价格必填!</message>
</field-validator>
<field-validator type="double">
<param name="min">1</param>
<message>起拍价格必须大于1元</message>
</field-validator>
</field>
<field name="userInfo.name">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message><![CDATA[<span class='error'>姓名不能为空</span>]]></message>
</field-validator>
</field>
<field name="trainingerInfo.password">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message><![CDATA[<span class='error'>请输入password</span>]]></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">25</param>
<message><![CDATA[<span class='error'>您输入的密码过长或者过短</span>]]></message>
</field-validator>
</field>
<field name="trainingCourse.startDate">
<field-validator type="date" short-circuit="true">
<message><![CDATA[<span class='error'>请输入正确的日期</span>]]></message>
</field-validator>
</field>
<field name="hr.password">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message><![CDATA[<span class='error'>请填写密码,不能为空</span>]]></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">16</param>
<message>请认真填写邮箱长度在${minLength} - ${maxLength} 之间</message>
</field-validator>
</field>
小例子
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="user.username">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入用户名</message>
</field-validator>
<field-validator type="stringlength" short-circuit="true">
<param name="minLength">6</param>
<param name="maxLength">20</param>
<message>用户名必须是6-20个字符</message>
</field-validator>
</field>
<field name="user.password">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入密码</message>
</field-validator>
<field-validator type="stringlength" short-circuit="true">
<param name="minLength">8</param>
<param name="maxLength">15</param>
<message>密码必须是8-15个字符</message>
</field-validator>
</field>
<field name="user.repassword">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入重复密码</message>
</field-validator>
<field-validator type="stringlength" short-circuit="true">
<param name="minLength">8</param>
<param name="maxLength">15</param>
<message>重复密码必须是8-15个字符</message>
</field-validator>
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression"><![CDATA[(user.repassword == user.password)]]></param>
<message>两次输入密码必须相同</message>
</field-validator>
</field>
<field name="user.age">
<field-validator type="required">
<message>年龄必须输入</message>
</field-validator>
<field-validator type="conversion" short-circuit="true">
<message>年龄转换错误,请输入整数</message>
</field-validator>
<field-validator type="int" short-circuit="true">
<param name="min">1</param>
<param name="max">100</param>
<message>年龄必须介于1到100之间</message>
</field-validator>
</field>
<field name="user.address">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入地址</message>
</field-validator>
<field-validator type="stringlength" short-circuit="true">
<param name="minLength">5</param>
<param name="maxLength">1000</param>
<message>地址介于5-1000个字符之间</message>
</field-validator>
</field>
<field name="user.email">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入Email</message>
</field-validator>
<field-validator type="email" short-circuit="true">
<message>请输入合法的Email地址</message>
</field-validator>
</field>
<field name="user.url">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入URL</message>
</field-validator>
<field-validator type="url">
<message>必须输入合法的URL</message>
</field-validator>
</field>
<field name="user.postCode">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>必须输入邮编</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[\d{6}]]></param>
<message>邮编必须是6位数字</message>
</field-validator>
</field>
<field name="jiaozi">
<field-validator type="required">
<message>饺子数必须填写</message>
</field-validator>
<field-validator type="double">
<param name="minInclusive">20.1</param>
<param name="maxInclusive">50.1</param>
<message>饺子需要在${minInclusive}和${maxInclusive}之间</message>
</field-validator>
</field>
</validators>