`

struts2 对异常的处理

阅读更多

 

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之异常处理案例struts003

    在Struts2中,异常处理是一项重要的功能,它确保在应用程序遇到错误时能够优雅地处理,提供友好的用户反馈,并保持系统稳定性。下面将详细讨论Struts2中的异常处理机制及其相关知识点。 1. **异常处理机制概述** ...

    struts2中异常处理(demo)

    这篇博客文章“Struts2中异常处理(demo)”可能详细介绍了如何在Struts2框架下优雅地处理程序中的异常。 在Java Web开发中,异常是程序运行时遇到的问题,例如无效的用户输入、资源未找到或内部系统错误。Struts2...

    Struts2异常处理机制

    Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误处理方式,从而提高用户体验并增强程序的健壮性。 在Struts2...

    struts手动异常处理

    2. **全局异常处理**:Struts允许我们在配置文件中定义全局异常映射,这样所有Action中的未捕获异常都会被映射到特定的结果页面。在`struts.xml`或`struts-default.xml`中,可以使用`&lt;global-exception-mappings&gt;`...

    Struts1异常处理

    2. **Struts-config.xml配置异常处理**:在框架配置文件中,`&lt;global-exceptions&gt;`标签用于定义全局异常处理规则。例如: ```xml ``` 这段配置表示,如果任何地方抛出了`java.lang.Exception`或其子类,...

    struts2的异常处理

    本篇文章将深入探讨Struts2的异常处理策略,以及如何在DAO层进行单元测试配置。 在传统的Web应用中,当一个异常发生时,通常会跳转到错误页面或者返回错误信息。但在现代Web应用中,尤其是涉及到Ajax异步请求时,...

    struts2的异常处理机制

    以下是对Struts2异常处理机制的详细说明: 1. **异常处理流程**: 当一个Action执行过程中抛出异常时,Struts2会根据配置的异常映射(`exception-mapping`)来决定如何处理这个异常。异常处理分为全局(全局异常...

    Struts2的异常处理

    Struts2作为一款流行的Java Web框架,其异常处理机制是开发者必须掌握的关键部分。这篇博客主要探讨了在Struts2中如何有效地管理和处理异常,从而提高应用的稳定性和用户体验。 在Struts2中,异常处理主要通过两种...

    struts2处理项目全局异常

    项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。

    Struts2 异常处理的四种获取属性方法

    在Struts2框架中,异常处理是至关重要的一个部分,它确保了应用程序的稳定性和用户体验。Struts2提供了多种方式来捕获和处理异常,帮助开发者优雅地处理程序中的错误情况。以下是Struts2异常处理的四种主要方法,...

    深入浅出struts2

    同时,Struts2对异常处理有很好的支持,能够优雅地捕获和处理运行时异常,提供友好的错误页面。 除此之外,书中可能会讲解Struts2的测试策略,包括单元测试Action和集成测试整个应用。Struts2与JUnit、Mockito等...

    struts1.x 异常处理机制

    以下是对Struts1.x自定义异常处理的详细讲解。 首先,Struts1.x框架默认的异常处理方式是通过`struts-config.xml`配置文件中的`&lt;global-exceptions&gt;`标签来定义全局异常处理。在这个标签内,你可以声明一个或多个...

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

    在提供的压缩包文件"Struts_exception"中,可能包含了Struts异常处理的相关示例代码或者教程,例如如何配置struts.xml,如何创建自定义异常类,以及如何在Action中进行异常处理等。这些资源可以帮助开发者更深入地...

    struts2.2.1-core

    - **异常处理和国际化**:Struts2对异常处理和国际化有内置支持,源码分析有助于理解这些机制的工作原理。 - **插件机制**:Struts2支持丰富的插件,源码中可以看到如何扩展框架功能。 - **安全方面**:Struts...

    struts2 单文件,多文件上传及拦截器实现异常处理

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括表单处理、MVC设计模式支持以及异常处理机制。在文件上传方面,Struts2提供了方便的API和配置方式来处理单个或多个文件的上传。在这个主题中,...

    struts2 全局异常提示定义属性文件使用

    首先,我们要理解Struts2的异常处理机制。当控制器或业务逻辑抛出异常时,Struts2框架会捕获这些异常并根据配置决定如何响应。默认情况下,Struts2会显示一个简单的错误页面,但这通常不够具体和友好。为了解决这个...

    struts2国际化处理全解

    6. **处理错误和异常消息**:Struts2默认会自动从资源文件中查找错误和异常消息,只需确保在`struts.properties`中设置了正确的错误消息资源包。 在提供的压缩包`07`中,可能包含了相关的教学材料,如幻灯片和案例...

Global site tag (gtag.js) - Google Analytics