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);
}
分享到:
相关推荐
- 捕获和处理特定的异常,而不是使用通用的`Exception`。 - 使用自定义异常来封装业务逻辑错误。 - 不要忽视未捕获的异常,确保它们被适当记录和处理。 - 全局和局部异常映射相结合,提供灵活的错误处理策略。 ...
正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...
例如,可以为所有类型的Exception配置一个通用的错误处理页面。 3. **ActionMapping的errorKey属性**:在配置Action时,可以通过errorKey属性指定当该Action执行失败时,要显示的错误信息。这些错误信息可以在JSP...
声明式异常处理和个性化异常处理是Struts框架中的两个重要特性,它们帮助开发者更有效地管理和处理应用程序可能出现的异常情况,从而提高应用的健壮性和用户体验。 声明式异常处理是Struts通过配置文件(如struts-...
预设的拦截器如Params拦截器用于参数绑定,Validation拦截器进行字段验证,Exception拦截器处理异常。 此外,笔记可能还会介绍Struts2的插件系统,例如Struts2-convention-plugin,它可以自动根据类名和方法名来...
9. **异常处理**:Struts2允许全局或局部地定义异常处理策略,通过`<exception-mapping>`标签,可以指定不同类型的异常如何被处理。 10. **插件系统**:Struts2拥有丰富的插件库,如Ajax支持、JSON处理、Spring集成...
此外,Struts2还提供了拦截器(Interceptor)机制,可以实现如权限控制、日志记录等通用功能的模块化。 二、Struts2架构 Struts2的架构基于拦截器栈,每个请求都会经过一系列预定义或自定义的拦截器,这些拦截器按...
2.1.8版本可能包含了一些预定义的拦截器,如`params`拦截器用于处理请求参数,`validation`拦截器用于进行表单验证,`exception`拦截器则处理未捕获的异常。 再者,Struts 2.1.8中的配置文件通常包括`struts-...
3. **拦截器(Interceptors)**:Struts 2的核心特性之一是拦截器,它们在Action调用前后执行,可以用来实现事务管理、日志记录、性能监控等通用功能。2.3.16.3版本可能包括了如Validation、Exception、Logger等预...
- 拦截器是Struts2中一种非常重要的机制,用于处理请求前后的一些通用操作,比如验证、转换数据等。 - 示例: ```xml ``` #### 五、创建及访问Action 1. **Action的创建**: - Action类是处理用户请求的...
Struts2提供了一些内置拦截器,如params预处理请求参数,exception处理异常,i18n处理国际化等。 六、OGNL表达式语言 OGNL(Object-Graph Navigation Language)是Struts2的默认表达式语言,用于在Action对象和视图...
10. **Exception (异常处理)** - **功能**:用于捕捉Action抛出的异常,并根据异常类型跳转到不同的结果页面。这是一种非常实用的异常处理机制,可以避免在每个Action中重复编写异常处理代码。 11. **File ...
8. **异常处理**:Struts2提供了全局的异常处理机制,通过配置`<global-exception-mappings>`可以指定不同类型的异常对应的结果。 9. **国际化与本地化**:Struts2支持多语言环境,通过资源包(properties文件)...
Struts 2.0.14包含了一些预定义的拦截器,如`params`用于处理请求参数,`validation`用于表单验证,`exception`用于异常处理。 3. **结果类型**: 结果类型定义了Action执行后的跳转逻辑。Struts 2.0.14提供了多种...
常见的拦截器有Params(处理参数)、Validation(进行表单验证)、Exception(处理异常)等。 6. **Struts2的插件** Struts2提供了丰富的插件,如Struts2-convention-plugin(自动映射Action和结果),Struts2-...
- Struts2提供了一套全面的异常处理机制,通过`<exception-mapping>`定义异常对应的处理Action。 10. **测试支持** - Struts2支持单元测试和集成测试,可以对Action进行单独测试。 这个"struts2.0小例子"可能...
5. **拦截器**:Struts2的拦截器是AOP(面向切面编程)的一种实现,可以处理如日志记录、权限检查等通用任务。在配置文件中,你可以看到默认的拦截器栈,例如`struts-default`,它包含了如`params`、`i18n`、`...
- **Declarative Exception Handling**(声明式异常处理):通过配置文件中的异常处理规则,可以在不修改代码的情况下处理异常情况。 - **Internationalization**(国际化):Struts2提供了强大的国际化支持,使得...
7. **异常处理(Exception Handling)**:Struts2.1提供了一套完整的异常处理机制,允许开发者定义全局或特定Action的异常处理策略。 8. **Tiles集成**:Tiles是一个用于构建Web页面布局的框架,Struts2.1可以方便地...