`
desert3
  • 浏览: 2158589 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Struts 1.1 ExceptionHandler(转)

    博客分类:
  • Java
 
阅读更多
转自:SSH项目中利用ExceptionHandler处理异常
Class ExceptionHandler: An ExceptionHandler is configured in the Struts configuration file to handle a specific type of exception thrown by an Action.execute method.

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

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

三、自定义异常处理
1, 创建自己的异常处理类public class ExceptionHandler extends org.apache.struts.action.ExceptionHandler
2, 定义异常处理配置文件
全局异常 在struts-config.xml中定义<global-exceptions />
    <global-exceptions><!-- 元素可以包含一个或者多个<exception> -->  
        <exception   
            key="error.common"<!-- <message-resources parameter="MessageResources" />中的key -->  
            type="com.fengzhiyin.exception.ExistException"<!-- 指定需要处理异常类的名字 -->  
            handler="com.bjnv.water.common.ExceptionHandler" <!-- 指定异常处理类默认是ExceptionHandler -->  
            path="/jsp/common/error.jsp"<!-- 指定当前异常发生的时候转发的路径 -->  
            scope="request"><!-- 指定ActionMessages实例存放的范围 -->  
        </exception>  
    </global-exceptions>  

局部异常 在struts-config.xml中定义<exception />
    <action-mappings>  
      <action path=”/waterUser”  
            type=”**Action”  
            name=”*Form”>  
        <exception key=”<span style="font-size: x-small;">expired.existName</span>”  
            type=” com.fengzhiyin.exception.ExistException”  
            path=”/error.jsp”/>  
            <forward name=”success” path=”***”/>  
      </action>  
    </action-mappings>  

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" %>  
  <html:html locale="true">  
  <head>  
   <title> Exception Handler</title>  
   <html:base />  
   </head>  
   <body>  
   <h1>系统出现一个意外</h1>  
   请将下面的提示信息反馈给你的系统管理员:<br>  
   <html:errors /> <!--将在这里显示”<span style="font-size: x-small; color: #0000ff;">你要添加的用户名称已经存在,请添加新的名称!</span>”-->  
   </body>  
  </html:html> 

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();  
       }  
    }  
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Struts框架中struts-config.xml文件配置小结

    &lt;exception className="org.apache.struts.config.ExceptionConfig" handler="org.apache.struts.action.ExceptionHandler" key="login.error" path="/error.jsp"&gt; ``` #### 四、其他元素简介 除了上述介绍...

    struts-2.3.4笔记

    全局异常处理通过 `&lt;global-exception-mappings&gt;` 标签定义,而局部异常处理则在 Action 类中使用 `@ExceptionHandler` 注解。 7. **国际化(Internationalization, i18n)**:Struts 2 支持多语言应用,通过资源包...

    struts2学习笔记总结

    局部异常处理则在Action类中通过@ExceptionHandler注解指定。 八、最佳实践 1. 使用ActionSupport基类,它提供了默认的错误处理和字段验证。 2. 尽量避免在Action中直接写业务逻辑,而是将业务逻辑封装在Service层...

    Struts 友好错误提示

    Struts是Apache软件基金会的一个开源项目,它是一个用于构建企业级Java Web应用程序的MVC(Model-View-Controller)框架。在开发过程中,错误处理是非常关键的一环,因为良好的错误处理能够提供友好的用户体验,同时...

    Struts-config.xml配置详解

    异常处理类通常由org.apache.struts.action.ExceptionHandler定义,可以为不同的异常指定处理逻辑、转发路径、消息资源等。这使得整个应用在出现异常时,可以统一管理和响应,提高了程序的健壮性。 4. 元素:全局...

    struts2的源码

    5. **异常处理**:Struts2提供了一套完善的异常处理机制,包括`ExceptionMappingInterceptor`和`ExceptionHandler`,使得开发者可以自定义错误页面和处理策略。 6. **结果渲染**:`Result`接口和各种结果类型实现...

    hibernate

    异常处理在 Struts 1.1 版本中得到了增强,提供了声明式的异常处理机制。默认的 ExceptionHandler 类会捕获 Action 类中的异常,将 ActionError 对象存储在 JSP 可访问的范围内,从而可以在视图层展示错误信息。...

    struts1.x 异常处理机制

    另外,你还可以通过继承`org.apache.struts.action.ExceptionHandler`接口来自定义异常处理器,这允许你在整个应用程序范围内统一处理异常,而不仅仅是单个Action。 此外,对于Struts1.x中与Action相关的异常,如`...

    Struts2学习入门Demo备份

    此外,还可以使用`@ExceptionHandler`注解在拦截器中处理异常。 2. **类型转换**(Struts_1100_OGNL_Typechange):Struts2的OGNL(Object-Graph Navigation Language)表达式语言支持自动类型转换,将表单字段的...

    struts2.1.6零配置DEMO

    可以通过`@ExceptionHandler`和`@ActionError`注解来处理Action中的异常和错误。 这个DEMO展示了Struts2框架如何在没有XML配置文件的情况下运行,通过注解实现Action、结果映射、拦截器和其他核心功能。这对于理解...

    [信息办公]Struts图书馆管理系统_struts.zip

    - Struts支持全局的异常处理机制,可以在struts-config.xml中配置全局的ExceptionHandler。 8. **国际化与本地化**: - Struts支持多语言,可以通过资源包(properties文件)实现不同语言环境下的显示。 9. **...

    struts2_action代码

    6. 错误处理:Action类还可以处理异常,通过`@ExceptionHandler`注解定义异常处理器。 7. Session和Application范围:Action类可以直接访问Session和Application范围的数据,方便在不同请求间共享信息。 总之,这...

    spring+struts

    6. **异常处理**:Spring 提供了统一的异常处理机制,可以与 Struts 的 ExceptionHandler 结合,实现更精细的错误处理。 整合 Spring 和 Struts 可以利用两者的优点,如 Spring 的 DI 和 AOP 功能,以及 Struts 的 ...

    struts-config.xml 详解

    `exception`子元素用于映射特定的Java异常到自定义的异常处理器类(继承自`ExceptionHandler`)。通过`className`属性,你可以指定处理特定异常的类。这提供了对异常处理的灵活性,可以根据不同类型的异常执行不同的...

    struts1小实例

    9. **异常处理**:Struts1提供了全局的异常处理机制,通过在struts-config.xml中配置全局的ExceptionHandler,可以统一处理应用中的异常情况。 10. ** strut标签库**:Struts1提供了一套自定义的JSP标签,如`...

    STRUTS中文文档PPT详解

    Struts提供了全局异常处理机制,通过配置ActionError和ExceptionHandler,可以统一处理运行时异常,提高系统的健壮性。 八、Validator验证框架 Struts的Validator组件用于校验用户输入,可以自定义验证规则,并在...

    详解struts1的配置文件.doc

    - **Handler**:指定异常处理类,通常是继承自`org.apache.struts.action.ExceptionHandler`的自定义类。 - **Key**:指定异常消息的国际化资源键。 - **Path**:异常发生时的转发路径。 - **Scope**:指定...

    spring+struts论坛

    9. **异常处理**:Struts2使用ExceptionMappingAction和全局异常映射,Spring MVC通过@ControllerAdvice和@ExceptionHandler进行全局异常处理。 10. **测试**:Spring提供的MockMVC使得单元测试和集成测试更加方便...

    TestStruts2程序源码

    9. **异常处理**:Struts2提供了一套全局异常处理机制,可以在配置文件中定义全局错误页面,或者通过`@ExceptionHandler`注解在Action类中捕获和处理特定异常。 10. **国际化与本地化**:Struts2支持多语言环境,...

    基于Struts的新闻发布系统

    7. **异常处理**:Struts提供了一套强大的异常处理机制,通过全局的ExceptionHandler或者在struts-config.xml中配置ActionMapping的exception属性,可以对各种异常进行统一处理。 8. **Tiles框架集成**:Tiles是一...

Global site tag (gtag.js) - Google Analytics