1.校验表单信息是否符合常规(输入校验)
ActionSupport实现接口Validateable,接口中定义方法validate,需要
Override方法validate
2.校验类型转换(类型转换)
(1)全局校验
在struts.xml中添加
<constant name="struts.custom.i18n.resources"value="message">
</constant>
在src目录下创建文件message.properties
内容如下:
xwork.default.invalid.fieldvalue={0} error
(2)局部校验
在需要校验的RegisterAction的同一包下,创建文件
RegisterAction.properties,内容如下
invalid.fieldvalue.age=age conversion error
(invalid.fieldvalue.age=\u5e74\u9f84\u4fe1\u606f\u8f93\u5165
\u4e0d\u6b63\u786e)
3.类型转换与输入校验的流程
(1)首先struts2对客户端传来的数据进行类型转换
(2)类型转换完毕后再进行输入校验
(3)如果类型转换和输入校验都没有错误发生,那么进入excute方法
(调用商业逻辑)
注意:如果类型转换不成功,也同样进行输入校验
4.当不同的逻辑调用同一个类中不同的方法时,应该对不同方法进行单独
校验,具体实现步骤如下:
(1)在struts.xml中配置多个
<action name="register"
class="com.test.action.RegisterAction" method="abc">
<result name="success">/success.jsp</result>
<result name="input">/register2.jsp</result>
</action>
调用不同的method
(2)在action中写多个validate方法
public void validateAbc(){}
注意:当需要校验excute方法时,用validateExcute方法来代替
validate方法,避免任何一个方法校验都会调用validate方法
控制台打印信息如下:
validateAbc() invoked
validate~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
abc method invoked