struts2系列学习笔记(8)---------------类型转换的错误处理

由于用户输入的数据错误,而导致进行类型转换发生异常的情况时有发生.此时需进行类型转换的错误处理!

类型转换的错误处理方法:

(1)引用defaultStack拦截器栈 ----包如果继承自struts-default,则已经引用了

(2)Action类继承ActionSupport类或者实现ValidationAware接口

(3)为Action配置result name="input"的映射

默认错误信息显示为:

Invalid field value forfield "xxxx" (xxxx为实际字段名称)

如果不希望使用默认错误信息则有两种方法:

1. 全局资源文件中配置

          xwork.default.invalid.fieldvalue=

          效果:所有类型转换错误,均显示为=

2. 局部资源文件配置

          在当前Action包下创建文件名为:ActionName.properties

           文件内逐个字段定义错误信息,格式如下:

               invalid.fieldvalue.xxxx=  (其中xxxx为字段名)

=============================================================================

特别说明:

         1.控制台信息

                 尽管类型转换进行了错误处理,可是在控制台仍然会显示错误信息.方法修改Log4j.properties文件相关错误信息输出级别

参考设置:

1.# Set root logger level to WARN and append to stdout  
2.log4j.rootLogger=WARN, stdout  
3. 
4.log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
5.log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
6. 
7.# Pattern to output the caller's file name and line number.  
8.log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c/:%L) - %m%n  
9. 
10.# Print only messages of level ERROR or above in the package noModule.  
11.log4j.logger.noModule=FATAL  
12. 
13.# OpenSymphony Stuff  
14.log4j.logger.com.opensymphony=INFO  
15.log4j.logger.org.apache.struts2=DEBUG  
16. 
17.log4j.logger.com.opensymphony.xwork2=ERROR 

         2.如果Action类型为int,double等基本类型,则null,""这样的错误信息无法捕获

                  把Action属性设置成为对应的封装类类型,例如int-->Integer

你可能感兴趣的:(struts2系列学习笔记(8)---------------类型转换的错误处理)