struts2框架学习(三)——异常处理

  struts2框架提供了一种声明式的异常处理机制,struts2通过配置的拦截器来实现异常处理机制。

一、配置

 1、Struts2的异常处理机制是:通过在struts.xml文件中配置﹤exception-mapping …﹥元素完成的,配置该元素时,需要指定两个属性:

  1) exception:此属性指定该异常映射所设置的异常类型。

   2) result:此属性指定Action出现该异常时,系统转入result属性所指向的结果。

  2、异常映射分类:

  1)局部异常映射:将<exception-mapping… />元素作为<action…/>元素的子元素配置

<action name="emp_*" class="com.chinasoft.struts2.demo.action.EmpAction" method="{1}">
 <result name="toIndex">/index.jsp</result>
 <!-- 异常处理,这个是针对单个Action的,非全局 -->
 <exception-mapping result="toIndex" exception="java.lang.Exception" />
</action>

    2)全局异常映射:

    a)作用范围是package中的所有Action。这种映射使用元素进行配置,在该元素中嵌套作为子元素。

    b)将<exception-mapping… />元素作为<global-exception-mappings… />元素的子元素配置;

<package name="error-handler" extends="struts-default">
    <global-results>
            <result name="input">/page/common/inputError.jsp</result>
            <result name="success">/page/common/resData.jsp</result>
            <!-- error handler page -->
            <result name="errAjax">/page/common/appError.jsp</result>
            <result name="errPage">/page/common/exceptionPage.jsp</result>
    </global-results>
    <global-exception-mappings>
 <exception-mapping result="exception" exception="java.lang.Exception"/>
    </global-exception-mappings>
</package>

  3、如果局部异常映射和全局异常映射配置了同一个异常类型,在<action…./>元素内的局部异常映射将覆盖全局异常映射。

二、输出异常信息

  可以使用struts2标签来进行输出异常处理:  

    <s:property value="exception.message"/>:输出异常对象本身。
    <s:property value="exceptionStack"/>: 输出异常堆栈信息。
    利用struts2的异常处理机制和拦截器机制,可以很方便的实现异常处理功能,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。

 

posted @ 2017-01-13 16:12  xullent  阅读(113)  评论(0编辑  收藏  举报