【struts2】异常处理机制
来源:互联网 发布:阿里云 dnspod 编辑:程序博客网 时间:2024/05/21 09:08
任何成熟的MVC框架都应该支持成熟的异常处理机制,当然我们可以在Execute方法中手动特定的异常,返回特定的逻辑视图名-但是这样的处理方式非常的粗暴,我们需要写大量的catch块。其中最大的缺点还在于异常处理与代码耦合,一旦改变异常处理方式,必须修改代码。有了strutse我们可以通过声明式的方式管理异常处理。
使用struts2来处理异常意味着不再需要进行任何的异常处理,而是把异常直接抛给struts2框架处理,struts2框架接收到Action抛出的异常之后,将根据struts2.xml文件配置的异常映射,转入指定的视图资源
打开异常映射功能
为了使用struts2的异常处理机制,我们需要打开struts2的异常映射功能,开始异常映射需要一个拦截器。
我们在struts-default.xml的配置文件中打开struts2的异常映射
<interceptors> <!--执行异常处理的拦截器--><interceptor name="exception" class="com.opensymphony.xwork.interceptor.ExceptionMapping.Interceptor"/> <interceptor-stack name="defaultStack"> <!--引用异常映射的拦截器--><interceptor-ref name="exception"/></interceptor-stack></interceptors>
异常捕捉
Struts2的异常处理机制是通过在struts.xml文件中配置<exception-mapping…/>元素完成的。配置该元素时需要指定如下两个属性。
Exception:制定该异常映射所设置的异常类型。
Result:设置到捕捉到该类型异常后,系统返回的对应的逻辑视图名。
<struts> <package name="struts2" extends="struts-default"> <!-- 配置全局异常映射 --> <global-exception-mappings> <exception-mapping exception="java.sql.SQLException" result="sql"/> <exception-mapping exception="java.sql.Exception" result="exc"/> </global-exception-mappings> <action name="login" class="tgb.action.LoginAction"> <result name="success">success.jsp</result> <result name="sql">sql.jsp</result> <result name="exc">error.jsp</result> </action> </package> </struts>
上面的配置文件定义了两个全局异常映射,当出现SQLException异常时系统将返回sql逻辑视图,当出现Exception异常时将返回exc逻辑视图。同时当页面响应成功后将由success.jsp逻辑视图。同时我们可以在Action中定义局部的异常映射,来定制异常处理。
输出异常信息
当struts2框架系统今日异常处理页面后,我们则可以在对应页面中输出指定异常信息.
为了在异常处理页面中显示异常信息,我们可以使用Struts2的标签来输出异常信息.
<s:property value="exeption"/>:输出异常对象本身
<s:property value="exeption.message"/>:针对第一种方式输出异常信息本身,该方法来输出异常的message信息.
<s:property value="exceptionStack"/>:输出异常堆栈信息
总结
通过上面的总结我们可以看到使用struts2的异常处理机制,不仅减少了大量的catch块,提高了代码的可读性,而且使用声明式的异常处理机制也很好的实现了代码的解耦,让我们把更多精力来完成业务的处理。
- struts2异常处理机制
- Struts2 异常处理机制
- Struts2异常处理机制
- Struts2异常处理机制
- struts2异常处理机制
- Struts2-异常处理机制
- 【struts2】异常处理机制
- Struts2的异常处理机制
- Struts2的异常处理机制
- Struts2的异常处理机制
- Struts2的异常处理机制
- Struts2的异常处理机制
- Struts2之异常处理机制
- Struts2异常处理机制笔记
- Struts2的异常处理机制
- struts2中异常的处理机制
- struts2对异常的处理机制
- struts2中 全局性的异常处理机制
- 【NOIP2015普及组T4】推销员-优先队列
- 一道非齐次方程组解的判定习题--行向量
- Linux 内核网络协议栈源码剖析socket 函数剖析
- Android跳转到通讯录获取用户名称和手机号码
- Python正则
- 【struts2】异常处理机制
- 今天起~开始记录博客
- 51单片机—定时器显示时钟
- 使用文件上传类upload.php上传文件
- 01串
- 【bzoj 1748】[Ahoi2009]Seq 维护序列seq 裸的线段树
- R语言图形编程
- Codeforces Round #376 (Div. 2) A.B
- 找回自己