今天处理了struts2 的异常,跟大家分享下:
1.处理不存在的Action:
只需在struts.xml中加
1 | < default-action-ref name = "defaultAction" /> |
2 | < action name = "defaultAction" class = "com.lsw.permission.action.DefaultAction" /> |
2.处理其他异常(如空指针,不存在的方法...),我们一般会定义全局异常及全局Result:
01 | <global-results><!-- 定义全局Result --> |
02 | <result name= "redirect" type= "redirect" >${returnPageURL}</result> |
03 | <result name= "dispatcher" type= "dispatcher" >${returnPageURL}</result> |
04 | <result name= "login" type= "dispatcher" >/login.jsp</result> |
05 | <result name= "exceptionError" type= "dispatcher" >/WEB-INF/jsp/error/exception.jsp</result> |
08 | <global-exception-mappings><!-- 全局异常处理 --> |
09 | <exception-mapping result= "exceptionError" exception= "java.lang.NullPointerException" /> |
10 | <exception-mapping result= "exceptionError" exception= "java.lang.NoSuchMethodException" /> |
11 | <exception-mapping result= "exceptionError" exception= "java.lang.Exception" /> |
12 | </global-exception-mappings> |
3.处理不存在的页面,如不存在的JSP,html,htm等页面(404异常),struts是不能处理这个异常的,还有其他异常(如500,401等等)都交给tomcat来处理,只需在web.xml中加如下配置即可:
03 | <error-code> 404 </error-code> |
04 | <location>/WEB-INF/jsp/error/ 404 .jsp</location> |
08 | <error-code> 500 </error-code> |
09 | <location>/WEB-INF/jsp/error/ 500 .jsp</location> |