类型转换与输入校验的流程:
1、首先struts2对客户端传来的数据进行类型转换。struts2不能进行类型转换的时候,struts2框架会自动生成一条错误信息并将该错误信息放到addFieldError里面。
2、类型转换完毕后,不论类型转换成功与否都要执行action的validate方法。由validate方法进行业务规则的输入校验。
3、如果类型转换和输入校验都没有错误发生,那么进入execute方法。
类型转换校验分局部校验和全局校验
全局校验
全局校验需要在struts.xml文件中,增加如下配置项:
<constant name="struts.custom.i18n.resources" value="message"></constant>
新建message.properites文件,message.properites文件跟struts。xml文件放在同一目录下。即web-inf的classes目录下。在message。properties增加如下配置项:
xwork.default.invalid.fieldvalue={0} error
{0}代表传入的字段参数值
局部校验
局部校验是针对单个action里的属性进行类型转换校验,推荐使用这种方式。
局部校验需要增加一个针对校验的action文件增加一个properites文件,譬如
action名称为LoginAction,则校验文件为LoginAction.properites.校验文件需要和action文件放在同一目录下。在校验文件中增加针对每个action属性增加配置项:
invalid.fieldvalue.age(属性名) = 必须输入整数