struts2学习记录其三:配置Struts2的异常处理

上一章:Action的配置和放回结果的配置:http://www.cnblogs.com/suxi-blog/articles/6036873.html

下一章:Convention插件与“约定”支持:http://www.cnblogs.com/suxi-blog/articles/6270295.html 

1.任何一个成熟的MVC框架都提供一个成熟的异常处理机制,当然可以在execute方法中手动捕捉异常,但如果异常过多,就要实用的大量的catch块,因此最好的方式是通过生命的方式来管理异常处理。其实质是完成异常类型和逻辑视图名之间的对应关系。那就完全可以把这个对应的关系推迟到struts.xml文件中进行管理。

2.public String execute()throws Exception{}这个execute()方法可以泡出全部异常,完全无需任何异常处理,而是把异常直接抛给Struts2框架助理。但是需要在配置文件中添加如下代码:

<interceptors>

  <!-- 执行异常处理的拦截器-->

  <interceptor name="exception" class="com.opensymphony.xwork.interceptor.ExceptionMapping.Interceptor"/>

  <!--struts默认的拦截器栈-->

  <interceptor-struts name="defualtStrack">

    <!--引用异常映射拦截器-->

    <interception-ref name="exception"/>

  </interceptor-struts>

</interceptors>  

3.声明式异常捕捉

struts2的异常处理机制在struts.xml文件中配置<exception-mapping....../>元素完成的,它有两个属性

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

  result:此属性指定Action出现异常是,系统返回result属性值对应的逻辑图名。  

根据位置的不同,异常也分为:

  局部异常:该元素作为<action...../>元素的子元素配置

  全局异常:该元素作为<global-exception-mappings>元素的子元素配置。

通常需要注意的是:全局异常映射的result属性通常不要使用局部结果,局部异常映射的result属性值既可以使用全局结果,也可以使用局部结果。

4.输出异常信息

通常使用struts的标签来实现:

 <s:property value="exception"/>:输出异常的本身

 <s:property value="exceptionStack">:输出异常栈信息

也可以采用<s:property value="exception.message"/>代码来输出异常的message信息。

--------------------------------------------------------------------------------------------------------------------------------------------------------

今天就到这里,谢谢观看。

上一章:Action的配置和放回结果的配置:http://www.cnblogs.com/suxi-blog/articles/6036873.html

下一章:Convention插件与“约定”支持:http://www.cnblogs.com/suxi-blog/articles/6270295.html 

posted @ 2017-01-10 16:41  freeflying  阅读(99)  评论(0编辑  收藏  举报