只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的struts1.1中的异常应用实践,手机电脑控们准备好了吗?一起看过来吧!
【 tulaoshi.com - 编程语言 】
struts的异常处理机制带我们很大的方便。通过思考和自己作例子,觉得以下这种方式较为灵活:
首先为你的应用程序定制一套异常类。例如,先定义一个基类(可以是虚类),注重,在此它扩展自RuntimeException,这是为了在struts的action中顺利捕捉到。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
public class BaseException extends RuntimeException {...}
下来你可以定义几个子类,例如:Dao异常,事务处理异常,service异常等。在spring中,包
org.springframework.dao下定义了一套Dao异常,值得大家学习一下。
接着,在struts-cofig.XML文件中定义全局异常如下,此处的key属性我已经不预备用了:
global-exceptions
exception key="todo" type="org.chage.exception.BaseException" handler="org.chage.exception.MyExceptionHandler" /
/global-exceptions
下面看一下我的处理异常的类:
package org.chage.exception;
import org.apache.struts.action.ExceptionHandler;
import ...
public class MyExceptionHandler extends ExceptionHandler {
public ActionForward execute(
Exception exception,
ExceptionConfig config,
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
request.setAttribute("exception", exception);
//返回原始请求的Forward,当然你也可以定义一个全局异常ForWord,都转向它
return mapping.getInputForward();
}
}
在页面上(此页面我们设置为请求action,即发生异常的action的input属性),我们显示错误信息时可以使用struts标签如下,注重,这里显示的信息和资源属性文件无关,是你自己抛出的:
logic:present name="exception"
bean:write name="exception"/
/logic:present
这样作的好处在哪里呢?我们来看一下,一般我们的思路是,发生了逻辑错误,比如说,用户名输重复,或者预备修改的数据已被他人删除等,我们要捕捉它并显示给用户,第一感是在action中作的,例如:
try{
//do something logic method...
}catch (XXXException e){
ActionErrors errors= new ActionErrors();
ActionError error=new ActionError("error.missing.username");
errors.add("error.xxx",error);
saveErrors(request,errors);
return mapping.findForward("errorPage");
}
设计良好的action应该仅仅是web层的一个“路标指引器”,真正的逻辑方法是调用其他的业务bean来完成的,简单地说,通常认为action中的代码越少越好.假如采用了上面那种全局异常处理机制,action此时就可以不用管逻辑异常了,由业务bean负责抛出就可以了,大家就可以少写一些action中的try catch 语块了,也可以绕开ActionError,思路上是不是更清楚?异常在真正发生的类中被抛出,然后向上传递,一直传到action中,struts负责捕捉之,当然这里的异常你必须已经定义过了。
注:
1. 假如你不想写 MyExceptionHandler 类,当然struts-config.xml中的handler=属性也要去掉,还有一种办法可以显示错误信息在 jsp页上,先引用jstl标签库,然后如下:
c:out value="${requestScope['org.apache.struts.action.EXCEPTION'].message}"/
来源:http://www.tulaoshi.com/n/20160219/1606002.html
看过《struts1.1中的异常应用实践》的人还看了以下文章
更多>>
-
struts1.1中的异常应用实践
02-19
-
了解Struts1.1介绍
02-19
-
在JBuilder9上使用Struts1.1的实现
02-19
-
Struts 1.1 安装、示例篇
02-19
-
在Eclipse中开发struts应用程序
02-19
-
<C++实践系列>C++中的异常(exception)
01-29
-
Struts的动态表单的应用
02-19
-
Java 理论与实践: 关于异常的争论
02-19
-
[Struts]配置第一个Struts 应用
02-19
-
如何让JBuilder9支持Struts 1.1
02-19
延伸阅读
如果您有什么好的建议或者疑问,可以联系我们。 商务合作QQ:3272218541;3282258740。商务合作微信:13319608704;13319603564。
加好友请备注机构名称。让我们一起学习、一起进步tulaoshi.com 版权所有 © 2019 All Rights Reserved. 湘ICP备19009391号-3
微信公众号