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