Exception异常在页面显示

原创 2013年12月02日 14:48:43
Struts可以以两种不同方式来处理Action类中execute()方法产生的异常:

1、配置方式:通过设置Struts配置文件(struts-config.xml)中的exception元素来处理异常。

2、编程方式:在Action中捕获异常,并把异常重新包装成ActionMessage对象,然后把ActionMessage对象保存在ActionMessages对象中,接着把请求转发给错误处理页面即可。

以配置方式处理异常可以提高应用的灵活性、可重用性和可维护性,下面介绍如何以配置方式来处理异常:
1、首先在<global-exception>(全局异常)或<action>(局部异常)元素中嵌套<exception>元素,一个<exception>元素代表一种类别的异常,其格式如下:
<exception type="type" handler="handler" path="path" key="key" bundle="bundle" scope="scope"/>
type:指定待处理的异常类。
handler:指定异常处理类,默认值为org.apache.struts.action.ExceptionHandler。如果设置为用户自定义的异常处理类,则该类必须继承ExceptionHandler。
path:指定转发路径。
key:指定错误消息的key,Struts框架将根据这个key到Resource Bundle中寻找匹配的消息文本。
bundle:指定Resource Bundle,如果没有设置此项,将使用默认的Resource Bundle。
scope:指定ActionMessages的存放范围,可选值包括request和session。默认值为request。

在指定了所有的异常后,可以加一个<exception type="java.lang.Exception" .../>来捕获尚未指定的其它异常,并可以指定该key的值为"系统错误......"。

例如:
struts-config.xml 文件
...
<exception type="com.cjcoder.MyException" key="action.errors.myexception" path="/error.jsp"/>
<exception type="java.lang.Exception"     key="action.errors.exception"   path="/error.jsp"/>
...

error.jsp 文件
...
<html:errors property="action.errors.myexception"/>
<html:errors property="action.errors.exception"/>
...

2、在path指定的页面中,通过<html:errors/>来显示所有异常信息或通过<html:errors property="key"/>来显示指定异常信息(property属性的值和<exception>元素中指定的key相对应)。         


推荐方式

直接在后台try{

....处理逻辑

}catch(Exception e){

//通过请求抛回前端页面用EL表达式取值,Key值保持一致

request.setAttribute("message","联机处理异常,"+e.getMessage());

}

<html>

<body>

<c:if test="${!empty message}">
  <font color='red'>错误信息:${message}</font>
  </c:if>

</body>

</html>

版权声明:本文为博主原创文章,未经博主允许不得转载。

SpringMVC统一异常处理(返回异常数据而不是跳转到某个页面的方法)

关于SpringMVC统一异常处理的问题,网搜一大把。网上搜的关于如何进行统一异常处理不外乎如下三种方式:Spring MVC处理异常有3种方式: 然而,我的需求不是这样咯............
  • nmgrd
  • nmgrd
  • 2016年10月04日 17:00
  • 9452

引用EL表达式异常处理

According to TLD or attribute directive in tag file, attribute test does not accept any expression...

rabbitmq 管理界面-Rabbitmq Trace的使用

来源:http://www.cnblogs.com/gossip/p/4517345.html 一、什么是Trace        Trace是Rabbitmq用于记录每一次发送的...

Dynatrace分布式跟踪之AMQP over RabbitMQ

最近有个客户想通过Dynatrace的PurePath技术来分布式跟踪基于AMQP协议的远程调用(RPC),询问我Dynatrace是否支持AMQP协议?回答是肯定的,Dynatrace默认支持AMQ...

Oracle Exception 异常处理

异常分成两大类:预定义异常和自定义异常 处理方法分为:直接抛出异常、内部块处理异常、游标处理异常...
  • bbliutao
  • bbliutao
  • 2012年08月06日 08:35
  • 20104

第十八章异常(Exception)处理

  • 2011年04月08日 16:46
  • 198KB
  • 下载

android全局异常捕获 exception_global

  • 2016年01月28日 14:01
  • 138KB
  • 下载

浅谈java异常[Exception]

从异常角度来说这样严格的程序确实是万无一失,所有的异常都能捕获。但是站在编程人员的角度,万一这个程序出错了我们该如何分辨是到底是那引起的呢,io还是jdbc...所以,这种写法很值得当做一个反例。大家...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Exception异常在页面显示
举报原因:
原因补充:

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