Struts 1.1 ExceptionHandler(转)

转自:[url=http://fengzhiyin.iteye.com/blog/432182]SSH项目中利用ExceptionHandler处理异常[/url]
[url=http://struts.apache.org/1.2.9/api/org/apache/struts/action/ExceptionHandler.html]Class ExceptionHandler[/url]: An ExceptionHandler is configured in the Struts configuration file to handle a specific type of exception thrown by an Action.execute method.

[b]一、概述[/b]
在Struts1.1的版本中加入了对异常的处理 Exception Handling,有了它就不需要我们用try/catch等捕获异常,一旦出现了我们已经定义的异常那么就会转到相应得页面,并且携带定制的信息。Struts框架提供了默认的异常处理org.apache.struts.action.ExceptionHandler,它的[color=blue]execute()[/color]方法负责处理异常。在需要实现自定义处理时重写方法,可以在配置文件定义由谁来处理Action类中掷出的某种异常。

[b]二、Struts框架处理异常的流程[/b]
struts的[color=red]控制器负责捕获各种异常[/color],包括控制器运行中本身抛出的异常,以及调用模型的业务方法时抛出的异常。当struts的控制器捕获到异常后,在异常处理代码块中,创建描述信息的actionMessage对象把它保存在acionMessages(或其子类actionErrors)对象中,然后把actionMessage保存在特定范围(配置文件中的scope)。然后可以用[color=blue][/color]检索特定范围内的actionMessages对象

[b]三、自定义异常处理[/b]
1, 创建自己的异常处理类public class ExceptionHandler extends org.apache.struts.action.ExceptionHandler
2, 定义异常处理配置文件
[color=red]全局异常 [/color]在struts-config.xml中定义


key="error.common"
type="com.fengzhiyin.exception.ExistException"
handler="com.bjnv.water.common.ExceptionHandler"
path="/jsp/common/error.jsp"
scope="request">



[color=red]局部异常 [/color]在struts-config.xml中定义


        type=”**Action”
     name=”*Form”>
   expired.existName”
   type=” com.fengzhiyin.exception.ExistException”
   path=”/error.jsp”/>
    
  



3, 创建异常信息显示页面

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  
  
   Exception Handler
  
  
  
  

系统出现一个意外


   请将下面的提示信息反馈给你的系统管理员:

  
  
  


4, 创建测试action
    public class **Action extends BaseAction {  
   public ActionForward execute(ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response)throws Exception {
   throw com.fengzhiyin.exception.ExistException();
   }
}

你可能感兴趣的:(Java)