近期看了下Struts2.0 发现可以对异常以配置的方式进行特定的处理,这可是非常实用的功能,于是乎拉出来练练。
原来一些书籍中描述的全局配置只是针对某给包内的全局配置,如下:
<package name="orgPkg" extends="exceptionPkg"> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping> <exception-mapping result="error" exception="java.sql.SQLException"></exception-mapping> </global-exception-mappings> <action name="addOrgAction" class="com.taomujian.action.AddOrgAction"> <result name="success" type="redirectAction"> <param name="actionName">org</param> </result> <result name="input">org/addOrg.jsp</result> </action> </package>
那该所谓的全局异常只是针对该包内的配置起作用,那如何配置真正的全局异常处理呢?
这就要注意下package中extends这个属性了,我们可以单独建立一个包用来配置全局属性,然后其他包都继承该包,则自动集成了该包中配置的全局属性。如下:
<package name="exceptionPkg" 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> <exception-mapping result="error" exception="java.sql.SQLException"></exception-mapping> </global-exception-mappings> </package> <package name="orgPkg" extends="exceptionPkg"> <action name="addOrgAction" class="com.taomujian.action.AddOrgAction"> <result name="success" type="redirectAction"> <param name="actionName">org</param> </result> <result name="input">org/addOrg.jsp</result> </action> </package>
继承:这可是面向对象的基本概念!