struts2 对异常的处理
使用自定义类处理异常
1.定义异常类
2.定义拦截器类,并加入默认拦截器栈
3.struts.xml 配置
4.注意,struts-default.xml 有默认的异常处理拦截器:name="exception", 默认拦截器栈:defaultStack
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="exceptionInter" class="cn.demo.util.DefaultExceptionInterceptor"></interceptor>
<interceptor-stack name="demoStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="exceptionInter"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 异常处理后,能够提供友好的用户界面 -->
<global-results>
<result name="exceptionPage">/WEB-INF/pages/fail.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="exceptionPage"/>
</global-exception-mappings>
</package>
<package name="sys" extends="default" namespace="/sys">
<!-- action使用spring的bean -->
<action name="*_*" class="{2}" method="{1}">
<interceptor-ref name="params" />
<result name="userlist">/pages/user/list.jsp</result>
<result name="useradd">/pages/user/add.jsp</result>
<result name="userupdate">/pages/user/update.jsp</result>
<result name="userlook">/pages/user/look.jsp</result>
<interceptor-ref name="demoStack"></interceptor-ref>
</action>
</package>
</struts>
拦截器:
public class DefaultExceptionInterceptor extends AbstractInterceptor {
protected Logger log = LoggerFactory.getLogger(this.getClass());
//protected Logger myexLogger = LoggerFactory.getLogger("my-exception");
public String intercept(ActionInvocation inv) throws Exception {
String result = null;
try{
result = inv.invoke();
}catch(DefaultException e){
inv.getStack().push(new ExceptionHolder(e));
result = "exceptionPage";
}
return result;
}
}
自定义异常
public class DefaultException extends Exception{
public DefaultException(String msg){
super(msg);
}
}
public class UserAction extends ActionSupport{
private IUserService userService;
private static final Logger log = Logger.getLogger(UserAction.class);
public String list() throws DefaultException{
try{
}catch(Exception e){
throw new DefaultException(e.getMessage());
}
return "success";
}
}
相关推荐
在Struts2中,异常处理是一项重要的功能,它确保在应用程序遇到错误时能够优雅地处理,提供友好的用户反馈,并保持系统稳定性。下面将详细讨论Struts2中的异常处理机制及其相关知识点。 1. **异常处理机制概述** ...
这篇博客文章“Struts2中异常处理(demo)”可能详细介绍了如何在Struts2框架下优雅地处理程序中的异常。 在Java Web开发中,异常是程序运行时遇到的问题,例如无效的用户输入、资源未找到或内部系统错误。Struts2...
Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误处理方式,从而提高用户体验并增强程序的健壮性。 在Struts2...
2. **全局异常处理**:Struts允许我们在配置文件中定义全局异常映射,这样所有Action中的未捕获异常都会被映射到特定的结果页面。在`struts.xml`或`struts-default.xml`中,可以使用`<global-exception-mappings>`...
2. **Struts-config.xml配置异常处理**:在框架配置文件中,`<global-exceptions>`标签用于定义全局异常处理规则。例如: ```xml ``` 这段配置表示,如果任何地方抛出了`java.lang.Exception`或其子类,...
本篇文章将深入探讨Struts2的异常处理策略,以及如何在DAO层进行单元测试配置。 在传统的Web应用中,当一个异常发生时,通常会跳转到错误页面或者返回错误信息。但在现代Web应用中,尤其是涉及到Ajax异步请求时,...
以下是对Struts2异常处理机制的详细说明: 1. **异常处理流程**: 当一个Action执行过程中抛出异常时,Struts2会根据配置的异常映射(`exception-mapping`)来决定如何处理这个异常。异常处理分为全局(全局异常...
Struts2作为一款流行的Java Web框架,其异常处理机制是开发者必须掌握的关键部分。这篇博客主要探讨了在Struts2中如何有效地管理和处理异常,从而提高应用的稳定性和用户体验。 在Struts2中,异常处理主要通过两种...
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
在Struts2框架中,异常处理是至关重要的一个部分,它确保了应用程序的稳定性和用户体验。Struts2提供了多种方式来捕获和处理异常,帮助开发者优雅地处理程序中的错误情况。以下是Struts2异常处理的四种主要方法,...
同时,Struts2对异常处理有很好的支持,能够优雅地捕获和处理运行时异常,提供友好的错误页面。 除此之外,书中可能会讲解Struts2的测试策略,包括单元测试Action和集成测试整个应用。Struts2与JUnit、Mockito等...
以下是对Struts1.x自定义异常处理的详细讲解。 首先,Struts1.x框架默认的异常处理方式是通过`struts-config.xml`配置文件中的`<global-exceptions>`标签来定义全局异常处理。在这个标签内,你可以声明一个或多个...
在提供的压缩包文件"Struts_exception"中,可能包含了Struts异常处理的相关示例代码或者教程,例如如何配置struts.xml,如何创建自定义异常类,以及如何在Action中进行异常处理等。这些资源可以帮助开发者更深入地...
- **异常处理和国际化**:Struts2对异常处理和国际化有内置支持,源码分析有助于理解这些机制的工作原理。 - **插件机制**:Struts2支持丰富的插件,源码中可以看到如何扩展框架功能。 - **安全方面**:Struts...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括表单处理、MVC设计模式支持以及异常处理机制。在文件上传方面,Struts2提供了方便的API和配置方式来处理单个或多个文件的上传。在这个主题中,...
首先,我们要理解Struts2的异常处理机制。当控制器或业务逻辑抛出异常时,Struts2框架会捕获这些异常并根据配置决定如何响应。默认情况下,Struts2会显示一个简单的错误页面,但这通常不够具体和友好。为了解决这个...
6. **处理错误和异常消息**:Struts2默认会自动从资源文件中查找错误和异常消息,只需确保在`struts.properties`中设置了正确的错误消息资源包。 在提供的压缩包`07`中,可能包含了相关的教学材料,如幻灯片和案例...