`
gjs622520
  • 浏览: 41987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

struts通用Exception处理

阅读更多
struts通用Exception处理
自定义一个Exception类继承自RunTimeException,定义属性key、values等,并实现多个构造方法用于初始化。
如:
private String key; 
private Object values; 
//带key和参数 
public SystemException(String message,String key,Object value){ 
  super(message); 
  this.key=key; 
  this.values=new Object[]{value}; 
} 
//带key和参数数组 
public SystemException(String message,String key,Object values[]){ 
  super(message); 
  this.key=key; 
  this.values=values; 
} 
public SystemException(String message,String key) { 
  super(message); 
} 


struts-config.xml配置
  <global-exceptions>
  <!-- 全局异常 -->
   <exception key="error" type="java.lang.Exception" path="/common/error.jsp" />
  </global-exceptions>
在ExceptionHandler中实现附加参数等处理,如SystemExceptionHandler继承ExceptionHandler重写execute方法:

public ActionForward execute(Exception ex, ExceptionConfig ec, 
   ActionMapping mapping, 
   ActionForm form, 
   HttpServletRequest request, 
   HttpServletResponse response) throws ServletException { 
  ActionForward forward=null; 
  if(ec.getPath()!=null){ 
   forward=new ActionForward(ec.getPath()); 
  }else{ 
   forward=mapping.getInputForward(); 
  } 
  logger.debug("出现异常",ex); 
  if (ex instanceof SystemException) { 
   SystemException se = (SystemException) ex; 
   String key=se.getKey(); 
   ActionMessage error=null; 
   if(key==null){ 
    //无参,输入message 
    error=new ActionMessage(key,se.getMessage()); 
   }else{ 
    if(se.getValues()!=null){ 
     //带参 
     error=new ActionMessage(key,se.getValues()); 
    }else{ 
     //不带参 
     error=new ActionMessage(key); 
    } 
   }   
   //置error入 collection under Globals.ERROR_KEY. 
   this.storeException(request, key, error, forward, ec.getScope()); 
   return forward; 
  }   
  //默认 Handle the Exception. 
  //Return the ActionForward instance (if any) returned by the called ExceptionHandler 
  return super.execute(ex, ec, mapping, form, request, response);   
} 
分享到:
评论

相关推荐

    struts_exception用例

    - 捕获和处理特定的异常,而不是使用通用的`Exception`。 - 使用自定义异常来封装业务逻辑错误。 - 不要忽视未捕获的异常,确保它们被适当记录和处理。 - 全局和局部异常映射相结合,提供灵活的错误处理策略。 ...

    java文集

    正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...

    struts错误处理机制小例子

    例如,可以为所有类型的Exception配置一个通用的错误处理页面。 3. **ActionMapping的errorKey属性**:在配置Action时,可以通过errorKey属性指定当该Action执行失败时,要显示的错误信息。这些错误信息可以在JSP...

    Struts 声明式异常处理和个性化异常处理

    声明式异常处理和个性化异常处理是Struts框架中的两个重要特性,它们帮助开发者更有效地管理和处理应用程序可能出现的异常情况,从而提高应用的健壮性和用户体验。 声明式异常处理是Struts通过配置文件(如struts-...

    张龙圣思园struts2学习笔记word

    预设的拦截器如Params拦截器用于参数绑定,Validation拦截器进行字段验证,Exception拦截器处理异常。 此外,笔记可能还会介绍Struts2的插件系统,例如Struts2-convention-plugin,它可以自动根据类名和方法名来...

    Struts2实验案例项目

    9. **异常处理**:Struts2允许全局或局部地定义异常处理策略,通过`&lt;exception-mapping&gt;`标签,可以指定不同类型的异常如何被处理。 10. **插件系统**:Struts2拥有丰富的插件库,如Ajax支持、JSON处理、Spring集成...

    struts2教程及API

    此外,Struts2还提供了拦截器(Interceptor)机制,可以实现如权限控制、日志记录等通用功能的模块化。 二、Struts2架构 Struts2的架构基于拦截器栈,每个请求都会经过一系列预定义或自定义的拦截器,这些拦截器按...

    开发框架struts2.1.8.zip

    2.1.8版本可能包含了一些预定义的拦截器,如`params`拦截器用于处理请求参数,`validation`拦截器用于进行表单验证,`exception`拦截器则处理未捕获的异常。 再者,Struts 2.1.8中的配置文件通常包括`struts-...

    struts-2.3.16.3-lib.zip

    3. **拦截器(Interceptors)**:Struts 2的核心特性之一是拦截器,它们在Action调用前后执行,可以用来实现事务管理、日志记录、性能监控等通用功能。2.3.16.3版本可能包括了如Validation、Exception、Logger等预...

    Struts2框架基础 一

    - 拦截器是Struts2中一种非常重要的机制,用于处理请求前后的一些通用操作,比如验证、转换数据等。 - 示例: ```xml ``` #### 五、创建及访问Action 1. **Action的创建**: - Action类是处理用户请求的...

    struts2官方教程

    Struts2提供了一些内置拦截器,如params预处理请求参数,exception处理异常,i18n处理国际化等。 六、OGNL表达式语言 OGNL(Object-Graph Navigation Language)是Struts2的默认表达式语言,用于在Action对象和视图...

    Struts2内置拦截器简介

    10. **Exception (异常处理)** - **功能**:用于捕捉Action抛出的异常,并根据异常类型跳转到不同的结果页面。这是一种非常实用的异常处理机制,可以避免在每个Action中重复编写异常处理代码。 11. **File ...

    struts2.2.1 包

    8. **异常处理**:Struts2提供了全局的异常处理机制,通过配置`&lt;global-exception-mappings&gt;`可以指定不同类型的异常对应的结果。 9. **国际化与本地化**:Struts2支持多语言环境,通过资源包(properties文件)...

    struts-2.0.14

    Struts 2.0.14包含了一些预定义的拦截器,如`params`用于处理请求参数,`validation`用于表单验证,`exception`用于异常处理。 3. **结果类型**: 结果类型定义了Action执行后的跳转逻辑。Struts 2.0.14提供了多种...

    Struts2.1课件ppt

    常见的拦截器有Params(处理参数)、Validation(进行表单验证)、Exception(处理异常)等。 6. **Struts2的插件** Struts2提供了丰富的插件,如Struts2-convention-plugin(自动映射Action和结果),Struts2-...

    struts2.0小例子

    - Struts2提供了一套全面的异常处理机制,通过`&lt;exception-mapping&gt;`定义异常对应的处理Action。 10. **测试支持** - Struts2支持单元测试和集成测试,可以对Action进行单独测试。 这个"struts2.0小例子"可能...

    配置成功的struts2

    5. **拦截器**:Struts2的拦截器是AOP(面向切面编程)的一种实现,可以处理如日志记录、权限检查等通用任务。在配置文件中,你可以看到默认的拦截器栈,例如`struts-default`,它包含了如`params`、`i18n`、`...

    struts2的基础知识及例子大全

    - **Declarative Exception Handling**(声明式异常处理):通过配置文件中的异常处理规则,可以在不修改代码的情况下处理异常情况。 - **Internationalization**(国际化):Struts2提供了强大的国际化支持,使得...

    Struts2.1.zip

    7. **异常处理(Exception Handling)**:Struts2.1提供了一套完整的异常处理机制,允许开发者定义全局或特定Action的异常处理策略。 8. **Tiles集成**:Tiles是一个用于构建Web页面布局的框架,Struts2.1可以方便地...

Global site tag (gtag.js) - Google Analytics