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