Struts2.1的异常处理

     提起异常处理,不由想起铺天盖地的try{}catch{}语句 ,在方法中使用catch块处理异常已经成了java程序员的习惯。在Struts2.1看来,是该改变一下的时候了,于是Struts2.1凭借自己的强大拦截器功能,隆重推出声明式异常处理机制,使Struts2.1程序员体验到一种前所未有的快感。

     Struts2.1的声明式异常处理机制是在struts.xml文件中配置exception-mapping元素实现 的,根据exception-mapping放置的地方不同,可分为全局异常映射与局部异常映射两种。将exception-mapping放置在global-exception-mapping元素中时,表示配置全局异常映射,全局异常映射将对所有Action有效;将exception-mapping放置在Action元素中时,表示配置当前Action的局部异常映射,局部异常映射将只对当前Action有效。

      在配置exception-mapping元素时,需要指定exception与result两个属性值,其中exception属性指定具体的异常类型(如jva.sql.SQLException),result属性则用来指定当Action出现该异常时需要跳转的命名视图。

     Exception是所有异常的父类,因此,通过如下配置可捕捉到Action中的所有异常:

<!-- 定义一个全局result -->
<global-results>
<!-- 定义名为login的全局result -->
<result name="tologin">/login.jsp</result>
<!-- 定义名为error的全局result -->
<result name="error">/error.jsp</result>
<!-- 定义名为exception的全局result,该视图用于显示具体的异常信息 -->
<result name="exception">/exception.jsp</result>
</global-results>

<!-- 定义全局异常映射 -->
<global-exception-mappings>
<!-- 捕捉到exception异常(所有异常)时跳转到exception所命名的视图上 -->
<exception-mapping result="exception" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>


现在我们终于明白Struts2.1框架Action接口execute()就去采用如下方式定义 的良苦用心,就是这毫不显眼的"throws Exception"把Action中的异常如实抛给了Struts2.1负责拦截异常的拦截器,为Struts2.1程序 员减少了不少烦恼。

/**Action接口的Excecute方法,该 方法抛出所有异常*/

public String execute() throws Exception;

    在负责 显示异常信息的JSP页面中,使用<s:property value="exception.message"/>标签输出 异常信息的内容,使用<s:property value="exceptionStack"/>标签输出异常的堆栈信息。例如 ,负责 显示 异常信息的exception.jsp页面如下所示:


exception.jsp

<%@ page language="java"  contentType="text/html; charset=utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<html>

 <head>    
    <title><s:text name="exception_title"/></title>

  </head>

<body style="padding: 10px;background-color: #D6D3CE">
    Brother!您已进入--"异常"--页面! <br><br><br>
         <center><h2><s:text name="exception_title"/></h2></center> 
      <font color="#FF000"><b><s:text name="exception_prompt"/></b></font><br/><br/>
      <textarea rows="22" cols="150">
      异常信息内容:
      <!-- 输出异常信息内容 -->
      <s:property value="exception.message"/>
      异常的堆栈信息:
       <!-- 输出异常的堆栈信息 -->
      <s:property value="exceptionStack"/>
      </textarea><br><br/>
     <input type="button" value="返回" οnclick="history.go(-1)"/>
  </body>

</html>







1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值