Struts2框架有默认的类型转换错误拦截机制,该配置在struts-default.xml中,名叫conversionError,但是想使用需要继承ActionSupport.
默认的错误提示信息是英语的,若是想自定义,需要修改国际化文件:
mess.properties:
xwork.default.invalid.fieldvalue={0}字段类型转换失败!
对于对象的字段进行提示的话,需要使用局部action属性文件,并制定对应的字段名称
invalid.fieldvalue.user.birth=生日信息必须满足yyyy-MM-dd格式
在交互的时候,经常会有录入错误的情况。若是在服务器端捕获错误,可以使用默认的校验器。
Struts2提供了非常多的类型校验器:比如网址、邮件、数字等。当然,除了在创建专门的校验规则文件外,还可以使用基于注解的校验器:
@RequiredStringValidator(key = "name.required",message = "请输入用户名")
public String getName() {
return name;
}
重写积累的validate方法
@Override
public void validate() {
if(!name.toString().contains("zcx")){
addFieldError("user","用户名必须包含zcx");
}
}
另外struts还提供了验证validateXxxx技术。其中Xxxxx表示action中的某一个方法
Struts2校验的步骤:
1.类型转换器负责把参数进行转换,并设置成action的属性值
2.执行转换过程中的异常。若是出现异常,保存到actioncontext中,conversionError拦截器将其封装到filederror字段,执行第3步;若是没异常,直接到第3步
3.使用struts配置的校验器进行校验
4.通过反射调用validateXxxx方法
5.调用action类中的validate方法
6.若是前5步都没异常,直接调用本次请求的action;否则转入input逻辑视图对应的视图资源