1. Struts2的异常处理哲学
Struts 2中的异常处理通过拦截器来实现。从而不需要在具体的方法中写大量的try-catch块。
我们注意到ActionSupport中的execute()是如下定义的:
public String execute() throws Exception
所以该方法已经申明了异常,因此不用再方法内写具体的处理代码。
例1.1
<struts>
<package name="lee" extends="struts-default">
<global-results>
<result name="sql">/exception.jsp</result>
<result name="root">/exception.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.sql.SQLException" result="sql"/>
<exception-mapping exception="java.lang.Exception" result="root"/>
</global-exception-mappings>
<action name="login" class="lee.LoginAction">
<exception-mapping exception="lee.MyException" result="my"/>
<result name="my">/exception.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
2. 输出异常信息
可以使用如下Struts 2 标签输出异常信息:
l <s:property value=”exception”/>:输出异常对象本身。
l <s:property value=”exceptionStack”/>:输出异常堆栈信息。