1、Struts2允许通过struts.xml文件来配置异常的处理。
2、首先需要开启Struts2的异常映射功能,需要配置一个拦截器:
<interceptors>
...
<!-- 执行异常处理的拦截器 -->
<interceptor name=”exception”
class=”com.opensymphony.xwork.interceptor.
ExceptionMapping.Interceptor” />
...
<interceptor-stack name=”defaultStack”>
...
<!-- 引用异常拦截器 -->
<interceptor-ref name=”exception”/>
...
</interceptor-stack>
</interceptors>
3、通过配置<exception-mapping...>元素来实现Struts2的异常处理机制:
<global-exception-mappings>
<exception-mapping exception=”java.sql.SQLException”
result=”sql”
</global-exception-mappings>
或
<action ...>
...
<exception-mapping
exception=”org.crazyit.app.exception.MyException” result=”my” />
...
</action>
其中:
exception:指定该异常映射所设置的异常类型。
result:指定Action出现该异常时,系统返回result属性值对应的逻辑视图名。
4、全局异常映射的result属性值通常不要使用局部结果,局部异常映射的result属性值既可以使用全局结果也可以使用局部结果。
5、可以使用struts2的标签来输出异常信息:
<s:property value=”exception”/>:输出异常对象本身
<s:property value=”exceptionStack”/>:输出异常堆栈信息。