struts2校验框架使用总结
这些天一直在赶手上做的那个游戏平台项目.怎么说呢,狭小的空间范围内碌碌无为的忙碌着.隔三两头时不时还遭到老大的"鄙视".经过几天的奔跑,经过大家几天的努力,完成了小阶段性的目标.下午的时间也终于可闲下来了.认真来看了下代码的流程.代码的实现,代码的风格.虽然不是很好,但也是我一个一个字母敲上去的.实践是检验真理的唯一途径,实践才是一切标准.实践才能为之提高,实践才能为之进步.但大到一季度,小到一天,不同阶段,不同时期的总结是人一生不可或缺的过程.总结中成长,成长中实现人生价值.
今天就来说说struts2的验证框架(validate).Struts校验框架提供了一种不用编写代码,只需修改配置文件即可对输入进行校验的功能。代码方式校验,即重写validate()方法。实际应用中,validate()与校验框架一般只选其一。
1.struts对于数据的校验
int
整数
double
实数
expression
两数的关系比较
email
邮箱地址
url
检查输入是否为url格式
visitor
使用预定义的validators进行验证
conversion
检查是否将出现数据转换错误
regex
检查是否能匹配到正则表达式
required
用于检查值是否为null
requiredstring
用于检查string是否为null或空
stringlength
检查string的长度是否在某个范围
date
检查date的范围
<validators><validator type="requiredstring"><param name="fieldName">buyer.username</param><param name="trim">true</param><message>必须输入用户名</message></validator><validator type="regex"><param name="fieldName">buyer.username</param><param name="expression"><![CDATA[(\w{6,20})]]></param><message>用户名长度必须为6至20之间</message></validator><validator type="requiredstring"><param name="fieldName">buyer.password</param><param name="trim">true</param><message>必须输入密码</message></validator><validator type="regex"><param name="fieldName">buyer.password</param><param name="expression"><![CDATA[(\w{6,20})]]></param><message>密码长度必须为6至20之间</message></validator><validator type="regex"><param name="fieldName">buyer.repassword</param><param name="expression"><![CDATA[(\w{6,20})]]></param><message>确认密码长度必须为6至20之间</message></validator> <validator type="fieldexpression"><param name="fieldName">buyer.repassword</param><param name="expression"><![CDATA[(buyer.repassword==buyer.password)]]></param><message>密码和确认密码必须一致</message></validator> <validator type="requiredstring"><param name="fieldName">buyer.email</param><param name="trim">true</param><message>必须输入邮箱地址</message></validator><validator type="regex"><param name="fieldName">buyer.email</param><param name="expression"><?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$)]]></param><message>邮箱格式不对</message></validator><validator type="regex"><param name="fieldName">buyer.idiograph</param><param name="expression"><![CDATA[(\w{6,20})]]></param><message>个性签名长度必须为6至20之间</message></validator><!--<validator type="requiredstring"><param name="fieldName">buyer.blogtitle</param> <param name="trim">true</param><message>必须输入博客标题</message></validator>--><validator type="regex"><param name="fieldName">buyer.blogtitle</param><param name="expression"><![CDATA[(\w{6,20})]]></param><message>博客标题长度必须为6至20之间</message></validator><field name="buyer.regTime"><field-validator type="required"><message>必须输入注册时间</message></field-validator><field-validator type="date"><param name="min">2011-05-25</param><message>广告投放时间必须介于${min}之后!!!</message></field-validator></field>
-1- 需要校验的Action名 + -方法名 + -validation.xml | 对应xml中<action>的属性的name值 如: RegisterAction-add-validation.xml --对应 /add.action --对RegisterAction中的add()方法进行校验-2- 在不需要进行验证的方法加上annotation,即在方法前加上@SkipValidation。-3- <action name=...> <interceptor-ref name="defaultStack"> <param name="validation.excludeMethods">*</param> <param name="validation.includeMethods">需要验证的方法名称,以逗号分隔</param> </interceptor-ref> </action>
field校验:<field name="name"> <field-validator type="requiredstring" > <param name="trim">true</param> <message>name required</message> </field-validator> <field-validator type="stringlength"> <param name="trim">true</param> <param name="minLength">6</param> <param name="maxLength">10</param> <message>name length range : ${minLength} ~ ${maxLength}</message> </field-validator></field>validator校验:<validator type="requiredstring"> <param name="fieldName">name</param> <param name="trim">true</param> <message>name required</message></validator><validator type="stringlength"> <param name="fieldName">name</param> <param name="trim">true</param> <param name="minLength">6</param> <param name="maxLength">10</param> <message>name length range : ${minLength} ~ ${maxLength}</message></validator>