使用Struts2的输入校验
1.数据校验可以分为客户端校验和服务器端校验两种。客户端校验和服务器端校验都是必不可少的,二者分别完成不同的过滤。
客户端校验进行基本校验,如检查分空字段是否为空,数字格式是否正确等。客户端校验主要用来过滤用户的误操作。客户端校验的作用是:拒绝误操作输入提交到服务器处理,降低服务器端的负担。主要通过JavaScript代码完成。
服务器端校验也必不可少,服务器端校验防止非法数据进入程序,导致程序异常、底层数据库异常。服务器端校验是保证程序有效运行及数据完整的手段。主要通过在应用中编程实现。
?
2.编写校验规则文件
Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验。
为Action指定一个校验规则文件后,即可里利用Struts2的输入校验功能对该Action进行校验。
RegistAction-validation.xml
<!--?校验文件的根元素 -->
<validators>
????? <!--?校验Action的name属性 -->
????? <field name="name">
????????????? <!-- 指定name属性必须满足必填规则?-->
????????????? <field-validator type="requiredstring">
??????????????????????<param name="trim">true</param>
??????????????????????<message>必须输入名字</message>
??????????????</field-validator>
????????????? <!-- 指定name属性必须匹配正则表达式?-->
????????????? <field-validator type="regex">
??????????????????????<param name="expression"><![CDATA[(\w{4,25})]]></param>
??????????????????????<message>用户名只能是字母和数字,且长度必须在4到25之间</message>
??????????????</field-validator>
????? </field>
????? <!--?指定age属性必须在指定范围内 -->
????? <field name="age">
????????????? <field-validator type="int">
??????????????????????<param name="min">1</param>
??????????????????????<param name="max">100</param>
??????????????????????<message>年纪必须在${min}到${max}之间</message>
??????????????</field-validator>
????? </field>
</validators>
?
3.客户端校验支持的几种校验器
required validator:必填校验器
requiredstring validator:必填字符串校验器
stringlength validator:字符串长度校验器
regex validator:表达式校验器
email validator:邮件校验器
url validator:网址校验器
int validator
double validator
?
4.Struts2提供了两种方式来配置校验规则:字段校验器风格和非字段校验器风格
5.内建校验器
6.基于Annotation的输入校验