struts1的异常处理:(整理)

 

struts1.3异常处理机制 

 

当Struts的控制器捕获到异常时,在异常处理块中,创建描述异常信息的ActionMessage对象,并放入ActionMessages对象中.然后把ActionMessages对象存放到一定范围内(request或者session范围),接下来,视图层的<html:errors/>标签检查特定范围内的ActionMessages对象,把本地化的错误信息显示到页面上.

 

 

1. struts 的异常处理

 

Action :

ActionErrors msg = new ActionErrors();

msg.add("login_error", new ActionMessage("app.error.login",true));

addErrors(request, msg);

 

ActionErrors是保存错误信息的集合

ActionMessage是一条错误提示信息

new ActionMessage("app.error.login"))和MessageResources绑定

new ActionMessage("登录错误"),false)不和MessageResources绑定

new ActionMessage("error2","value0","value1"));第一个参数指和MessageResources绑定

的key值,后面的参数是绑定的MessageResources里的value值 {0},{1}

addErrors() 方法将所有的报错信息放入到request里去

 

 

jsp:

 

<html:errors property="login_error" />

property 的值对应的是添加错误信息的时候指定的key,

如果没有 property 属性,就把所有的报错信息显示处理

 

总结:

struts1.3异常处理机制

当Struts的控制器捕获到异常时,在异常处理块中,创建描述异常信息的ActionMessage对象,

并放入ActionMessages对象中.然后把ActionMessages对象存放到一定范围内

(request或者session范围),接下来,视图层的<html:errors/>标签检查特定范围

内的ActionMessages对象,把本地化的错误信息显示到页面上.

 

 

来点理论的:

 

Strut1.x的异常处理蛮简单。配置时分为全局,异常与局部异常。

对于一个action若发生异常则先查找本身action是否有相应异常的配置,若无则查找全局异常配置,还没有则报错。异常处理一定会用到资源文件

  1. 局部配置如下

<!--

            key指定信息在资源文件中的键值

            type指发生的异常类型。

            bundle使用哪个资源文件,不配置则使用默认的资源文件

             -->

    <exception key="user.register" type="edu.yzu.exception.UserRegisterException" bundle="exception" path="/error.jsp"/>

 

 

  1. 全局配置如下,各属性与局部配置一样

    <global-exceptions>

    <exception  key="user.register" type="edu.yzu.exception.UserRegisterException" bundle="exception" path="/error.jsp"/>

    </global-exceptions>

     3.对于一个异常,通过会转入另外一个页面,提示错误,struts1.x在此设计有些不合理,一旦转入异常提示页面时,即使这个页面设置了isErrorPage="true"但是它的内置有exception对象依然为空,所以不能用exception得到异常中的信息,只能用<html:errors />来得到,一大失误哦,这也就是说struts1.x的异常处理是离不开资源文件的,因为异常的信息只能放在资源文件中。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值