| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
11年前发布

struts2全局异常处理及配合log4j异常日志记录

在编写代码时除了使用try catch来捕获异常之外,还可以用struts2的声明式异常处理,即在Action中直接抛出异常交给struts2来处理,并且在xml文件中进行相应的配置,如下:

<!--设置全局返回结果 -->  <global-results>          <result name="error">/webPage/exception/error.jsp</result>         <result name="sql">/webPage/exception/sql_error.jsp</result>  </global-results>  <!--定义要捕获的异常-->  <global-exception-mappings>            <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>           <exception-mapping result="sql" exception="java.sql.SQLException"></exception-mapping>   </global-exception-mappings>

以上是全局异常的处理,也可以处理特定Action的异常,如下:

<action name="login" class="userAction" method="login">          <exception-mapping result="login" exception="com.exceptions.LoginException"></exception-mapping>          <result name="login">/webPage/exception/login_error.jsp</result>  </action>

特定Action的异常声明优先于全局异常。

至于配合log4j记录异常日志是利用struts2中提供的异常拦截器ExceptionMappingInterceptor,当发生指定异常后,会由它处理,因为这个类有写日志的功能,默认是禁用的,因此直接将其启用即可,如下:

<interceptor-ref name="defaultStack">          <!--覆盖defultStack中的exception设置,启用它的日志功能-->          <param name="exception.logEnabled">true</param>            <param name="exception.logLevel">error</param>  </interceptor-ref>

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1381838615098.html
Struts2 Web框架