Struts2中异常的处理是由拦截器实现的,观察struts-default.xml文件
1、方法抛出异常;
2、调用该方法也同样抛出异常最后交给Struts2统一处理;
3、配置struts.xml文件:
<package name="admin" namespace="/admin" extends="struts-default">
<action name="*-*" class="com.jimmy.bbs.action.{1}Action" method="{2}">
<result>/admin/{1}-{2}.jsp</result>
<result name="input">/admin/{1}-{2}.jsp</result>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
<result name="error">/erros.jsp</result>
</action>
</package>
以上方法适用一个action抛出的异常,若要多个action抛出异常统一来处理,可以写个父包(父包写global-result,global-exception),则继承该包的所有子包的所有异常都统一交由该父包的异常处理。
<package name="bbs2009_default" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
</package>
<package name="admin" namespace="/admin" extends="bbs2009_default">
<action name="*-*" class="com.jimmy.bbs.action.{1}Action" method="{2}">
<result>/admin/{1}-{2}.jsp</result>
<result name="input">/admin/{1}-{2}.jsp</result>
</action>
</package>