Struts2学习:配置篇之异常映射

原创 2007年09月14日 13:53:00

异常映射是处理Action类异常的一个有力工具,通过异常映射我们可以提供更加友好的用户界面,而不是一堆错误代码信息。Action方法抛出的异常能够被自动捕捉然后经过映射指向一个预定义好了的Result。声明式的策略对于抛出运行时异常的框架尤其有用。

和框架的很多其它部分一样,我们需要使用一个拦截器来启动异常映射功能。在struts-default.xml文件中已经为我们把这个拦截器准备好了,因此我们可以直接使用:

为了使用异常映射,我们还需要为每个异常分配指定的Result。同Result一样框架为我们提供了两种方式来声明异常映射:全局异常映射和局部异常映射(仅仅只针对某一个action mapping)。当Action类抛出异常时异常拦截器会按照如下的规则对异常进行匹配:

1.根据所抛出的异常类型在局部异常映射与全局异常映射中寻找与之匹配的异常,注意,这要包括所抛出异常的所有祖先类。在这些能够匹配上的异常中找出与它遗传关系上最近的异常(自己跟自己是最接近的),然后根据这个异常映射的result属性去和action mapping中配置的Result进行匹配。

2.如果在局部异常映射和全局异常映射中同时出现了满足需求的异常映射,那么以局部异常映射为准。

下面以例子进行说明:

    <global-exception-mappings>

        <exception-mapping result="global"  

            exception="java.sql.SQLException"></exception-mapping>

        <exception-mapping result="test"

            exception="java.lang.Exception"></exception-mapping>

</global-exception-mappings>

    <action name="exception"

            class="tutorial.ExceptionAction">

        <exception-mapping result="sql"

             exception="java.sql.SQLException"></exception-mapping>

       <exception-mapping result="all"

            exception="java.lang.Exception"></exception-mapping>

       <result name="sql">/exception.jsp</result>

        <result name="global">/global.jsp</result>

        <result name="test">/test.jsp</result>

        <result name="all">/all.jsp</result>

</action>

上面是一个struts配置文件的片段,定义了两个全局异常映射和两个局部异常映射,我做了如下几个测试:

1.当Action类抛出SQLException时,局部映射起作用,页面转向exception.jsp

2.注释局部映射中的java.sql.SQLExceptionAction类抛出SQLExceptiop时,全局映射起作用,页面转向global.jsp

这就说明异常拦截器首先会寻找与所抛出异常在遗传关系上最接近的异常,如果局部映射与全局映射同时有,那么使用局部映射。

 

struts2中的异常映射处理机制

struts2中的全局异常映射和局部异常映射
  • VipMao
  • VipMao
  • 2016年04月14日 18:17
  • 993

Struts2之全局异常和局部异常的配置

我们在很多网站中都有看到,如果我们访问不到一些资源页面的时候,网站huibangwomen...
  • chenchudongsg
  • chenchudongsg
  • 2014年09月28日 10:09
  • 1358

struts配置全局异常result与全局异常映射mapping以及自定义返回类型

今天项目要配置异常页面。 贴配置 /WEB-INF/jsp/error.jsp /WEB-INF/jsp/error.jsp /WEB-INF/jsp/er...
  • G_thinking
  • G_thinking
  • 2016年07月11日 13:14
  • 1416

Struts2中配置处理结果及异常处理

 当Action处理用户请求结束后,控制器应该使用哪个视图资源生成响应呢?          这就必须使用元素进行配置,该元素定义逻辑视图名和物理视图资源之间的映射关系。 理解...
  • kakarot5
  • kakarot5
  • 2015年03月24日 15:31
  • 1521

Struts2配置详解_配置Action之通配符映射

通配符映射       随着Web应用程序的增加,所需的Action也会更多,从而导致大量的action映射,使用通配符可以减少action配置的数量,使一些具有类似行为的Action或者Act...
  • w410589502
  • w410589502
  • 2015年05月29日 11:59
  • 2376

SSH框架中配置log4j日志以及Struts2配置异常处理方法

1. log4j.properties文件配置示例 # default properties to initialise log4j log4j.rootLogger=ERROR,file,...
  • CXC0716
  • CXC0716
  • 2014年03月05日 19:04
  • 4137

struts2异常处理,global-results定义全局结果处理

COME FROM global-results>定义全局结果处理 一般发生异常之后 结果返回errHandler 因为errHandler是由关联到Exception这个类了 然后处理结果 ...
  • u011554611
  • u011554611
  • 2015年01月03日 20:29
  • 1477

转载/Struts2拦截器实现异常处理机制

创建ErrorInterceptor.java import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger...
  • isiah_zhou
  • isiah_zhou
  • 2016年04月21日 07:55
  • 1301

struts2学习:配置篇之通配符映射

应用程序越大,它里面action mapping的数量也越多,通过使用通配符,我们可以将一些相似的mapping绑在一起,用一个比较通用的mapping来表示,在前面关于action配置的那章里面也提...
  • zhangxiong0797
  • zhangxiong0797
  • 2013年11月14日 20:49
  • 361

Struts2通配符映射

1、一个Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 2、通配符映射规则 –若找到多个匹配...
  • kris234seth
  • kris234seth
  • 2015年11月18日 23:05
  • 318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2学习:配置篇之异常映射
举报原因:
原因补充:

(最多只允许输入30个字)