首页 技术 正文
技术 2022年11月10日
0 收藏 560 点赞 3,036 浏览 1657 个字

当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的异常处理是离不开资源文件的,因为异常的信息只能放在资源文件中。

本文转载于:http://blog.csdn.net/hakunamatata2008/article/details/6213758

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,087
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,562
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,821
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905