一、手动验证
在Struts2的API中,ActionSupport类对Validateable接口进行了实现,但对validate()方法的实现却是一个空实现,通常情况下,我们所创建的Action对象,都是通过继承ActionSupport类进行创建,所以,在继承ActionSupport类的情况下,如果通过validate()方法验证数据的有效性,直接重写validate()方法就可以了。
使用validate()方法可以对用户请求的多个Action方法的进行验证,但其验证的逻辑是相同的,如果在一个Action类中编写了多个请求处理方法,而此Action重写了validate()方法,那么,默认情况下,在执行每一个请求方法的过程中,都会经过validate()方法的验证处理。
(1)字段验证器编写风格
<validators>
<!-- 验证用户名 -->
<field name="username">
<field-validator type="requiredstring">
<message>请输入用户名</message>
</field-validator>
</field>
<!-- 验证密码 -->
<field name="password">
<field-validator type="requiredstring">
<message>请输入密码</message>
</field-validator>
</field>
</validators>
(2)非字段验证器编写风格
<validators>
<validator type="requiredstring">
<param name="fieldName">password</param> <!-- 验证密码字段 -->
<param name="fieldName">username</param> <!-- 验证用户名字段 -->
<message>请输入内容</message>
</validator>
</validators>