struts1.2x异常处理

 

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 文件

全局异常,定义方法如下:

===================================================
<global-exceptions>            
<exception          
key="expired.InvalidItemsCatalogName"
type="com.iplateau.jshop.common.waf.
exceptions.InvalidiItemsCatalogNameException"
      scope="request"           
      path="error.jsp"/>          
   </global-exceptions>
===================================================

局部异常,定义方法如下:

===================================================
<action-mappings>    
<action path=”/addItemsCatalogAction”            
type=”com.iplateau.jsop.action.ItemsCatalogAction”            
name=”itemsCatalogForm”>        
<exception key=” expired.InvalidItemsCatalogName”
type="com.iplateau.jshop.common.waf.
exceptions.InvalidiItemsCatalogNameException"         
path=”/error.jsp”/>        
<forward name="success"
path="/error.jsp"/>        
</ation>
</action-mappings>

===================================================

...

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相对应)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值