对于MVC框架而言。我们希望:当Action处理用户请求时。如果出现了异常1,则系统就会转入视图资源1,在该视图资源上输入服务器提示;如果出现了异常2,则系统会转入子图资源2,在该视图资源上输入服务器提示;。。。。。
为了满足上述要求,我们可以采用以下的处理方法:
我们在Action的execute方法中使用try…..catch快来捕捉异常,当捕捉到指定的异常时,系统会返回对应的逻辑视图名----这种处理方式完全是手动处理异常,可维护性不好。
从上面我们可以看到,上面代码段的实质是完成异常类型和逻辑视图名之间的对应关系。既然如此,我们为什么不可以把这种对应关系推迟到struts.xml中进行管理呢??
由于struts2支持声明式异常处理,所以我们只需要将所有的异常全部抛出,交给struts2来处理。然后根据struts.xml文件中配置的异常映射,转入到制定的视图资源。
声明式异常捕捉
Struts2的异常机制是通过在struts.xml文件中配置<exception-mapping..../>元素来实现的。配置该元素时需要指定两个属性:
读李刚《轻量级Java EE企业应用实战》
exception:指定该异常映射所设置的异常类型
result:指定Actin出现异常时,返回的逻辑视图名
异常映射一般可以分为全局异常映射和局部异常映射
全局异常映射对所有的Action都有效,而局部异常映射仅仅只对该异常映射所在的Action内有效。
全局异常映射是将<exception-mapping...>元素作为<action.../>元素的子元素配置
全局异常映射是将<exception-mapping...>元素作为<global-exception-mapping.../>元素的子元素配置
输出异常信息
当Struts2系统进入异常处理页面后,我们必须在对应的页面中输出指定异常信息
可以通过以下标签来输出异常信息
<.s:propertyvalue="exception"/>:输出异常对象本身
<s:propertuvalue="exceptionStack"/>:输出异常堆栈信息
对于第一种我们可以使用表达式输出异常对象本身。对于第二种,由于exception提供了getMessage()方法,所以我们可以采用<s:propertuvalue="exception.messagge"/>来输出异常的message信息
分享到:
相关推荐
Struts2 笔记12-20 浪曦风中叶
struts-2.3.4-all.zip 笔记
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
struts2学习笔记总结
Struts2-Spring-Hibernate整合,和Struts2,Hibernate的学习笔记。密码是kmp3314.
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
SSH笔记-Spring整合Struts2,作用是使用 IOC 容器来管理 Struts2 的 Action
Struts2学习笔记,介绍了struts2的基础部分
Struts2框架笔记,自己整理很详细 不看视频 看文档也能速度搞定Struts2
namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/") (http://localhost:8080/Struts2_0100_Introduction/) 四、 标签 是用来解决重名的问题,例如当系统的前台和后台都有一个action...
struts2学习笔记,拦截器,action,所需jar包,从零开始
毕生学习struts2的学习笔记,整理了好久,实打实的干货
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
本人学习struts2的笔记,希望大家可以多多学习以后共同交流
MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring).rar
Struts2框架
1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...
SSH笔记-整合Spring2、Struts2、Hibernate4的完整步骤