`
whp0731
  • 浏览: 174851 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2学习之十五-声明式的异常处理

阅读更多

看下文前可以先参考:

http://blog.chinaunix.net/u2/84280/showart_1728277.html 

 

 

 

package com.test.exception;

public class UsernameException extends Exception
{
 private String message;
 
 public UsernameException(String message)
 {
  super(message);
  
  this.message = message;
 }

 public String getMessage()
 {
  return message;
 }

 public void setMessage(String message)
 {
  this.message = message;
 }
 
 
}



 声明式的异常处理


1、类

 

 

package com.test.exception;

public class PasswordException extends Exception
{
 private String message;

 public PasswordException(String message)
 {
  super(message);

  this.message = message;
 }

 public String getMessage()
 {
  return message;
 }

 public void setMessage(String message)
 {
  this.message = message;
 }

}

 

 

2、action类修

public String execute() throws Exception
 {
  //username invalid
  if(!"hello".equals(this.getUsername()))
  {
   throw new UsernameException("username invalid");
  }
  //password invalid
  else if(!"world".equals(this.getPassword()))
  {
   throw new PasswordException("password invalid");
  }
  else
  {
   return SUCCESS;
  }
}

 

3、修改struts.xml
全局配置方式:
  

<global-results>
   <result name="passwordInvalid">/passwordInvalid.jsp</result>
  </global-results>
  
  
  <global-exception-mappings>
   <exception-mapping result="passwordInvalid" 

exception="com.test.exception.PasswordException"></exception-mapping>
  </global-exception-mappings>

局部配置方法:
  <action name="login" class="com.test.action.LoginAction">
   <exception-mapping result="usernameInvalid" 

exception="com.test.exception.UsernameException"></exception-mapping>
   
   <result name="success">/result.jsp</result>
   <result name="usernameInvalid">/usernameInvalid.jsp</result>
  </action>

 
4、新增jsp页面
1)usernameInvalid.jsp(举例用EL表达式)

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    
<%@ taglib prefix="s" uri="/struts-tags" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>

${exception.message }

</body>
</html>

 

2)passwordInvalid(也可以打印堆栈信息)

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>

<%@ taglib prefix="s" uri="/struts-tags" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>

<s:property value="exceptionStack"/>

</body>
</html>

 

 

 

 

分享到:
评论

相关推荐

    struts-2.2.3.1-apps

    7. **异常处理**:Struts 2提供了全局的异常处理机制,可以通过配置文件定义如何处理不同类型的异常,以实现统一的错误页面和友好的用户体验。 8. **国际化与本地化**:Struts 2支持多语言环境,开发者可以通过资源...

    Struts2 学习笔记

    07 声明式异常处理 33 08 国际化 35 一、 国际化资源文件 35 二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-...

    Struts2学习笔记

    #### 07 声明式异常处理 - **定义**:通过配置文件而不是程序代码来处理异常。 - **配置**:在`struts.xml`中使用`&lt;exception&gt;`标签来定义异常处理规则。 - **优点**:减少了代码量,提高了异常处理的灵活性。 ###...

    Struts1和Struts2区别

    - **Struts2**:支持注解和XML方式的校验,可以实现声明式校验,减少了代码量并提高了可维护性。 7. 国际化和本地化: - **Struts1**:需要手动配置资源文件,处理相对复杂。 - **Struts2**:提供了一套更直观的...

    ssh Jar 之struts2jar

    SSH中的Spring框架则是Java企业级应用的核心组件,它提供了一种声明式事务管理方式,可以简化事务处理。Spring的IoC容器负责管理对象的生命周期和对象间的依赖关系,而AOP则用于实现代码的横向切面,如日志记录、...

    struts2的新闻管理系统

    7. **表单验证**:Struts2提供了强大的表单验证功能,可以在Action类中定义验证规则,或者使用XML配置文件进行声明式验证。 通过这个新闻管理系统,新手可以学习到如何使用Struts2搭建一个完整的web应用,包括控制...

    struts-2.3.16-all-1

    5. **表单(Forms)**:Struts 2提供了一种声明式的方式处理表单输入,通过Action类的属性与表单字段对应,简化了验证和数据绑定的过程。 6. **国际化(Internationalization, i18n)**:Struts 2支持多语言环境,...

    Struts2 教学课件

    常见的拦截器有Params(参数校验)、Validation(表单验证)、Exception(异常处理)等。 5. **结果类型(Result Types)**:Struts2支持多种结果类型,如dispatcher(用于转发到JSP页面)、stream(用于下载文件)和...

    ssh2整合(spring+struts2+hibernate)-附

    Spring可以配置声明式事务,这样在整个业务流程中,如果发生异常,所有改动都将被回滚,保证了数据的一致性。 在实际项目中,整合SSH2通常包括以下步骤: 1. 引入相关jar包:包括Spring、Struts2、Hibernate的依赖...

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter3

    2. **Spring的配置和集成**:理解Spring的bean配置,以及如何将Struts和Hibernate的组件声明为Spring的bean,实现依赖注入。 3. **Ajax的应用**:学习如何使用jQuery或其他库(如 Prototype 或 AngularJS)来创建...

    j2ee:Struts2-Hibernate-Spring

    对于数据访问,Spring整合了Hibernate、JPA等多种ORM框架,提供了声明式事务管理,简化了事务处理。 在JavaEE课程中,使用SSH进行小实验和综合实验,学生通常会学习如何配置这三个框架,创建MVC架构的应用,实现...

    starting-struts2-chinese

    - **声明式异常处理**:Struts2提供了异常处理机制,可以在配置文件中定义异常映射,当指定异常发生时自动跳转到相应的页面。 #### 八、与其他技术的集成 - **页面修饰和布局**:通过Struts2的标签库和其他工具,...

    struts2的基础知识及例子大全

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

    Struts2资料收集

    8. **异常处理**:Struts2提供了全局和局部的异常处理机制,能够捕获并处理运行时异常,通过配置ActionError或FieldError,可以将错误信息显示给用户。 9. **测试支持**:Struts2支持单元测试和集成测试,可以通过...

    struts-2.5.12-src.zip

    9. **异常处理**:Struts 2允许开发者定义全局和Action级别的异常处理策略,提高代码的健壮性。 10. **国际化**:通过资源包(Properties文件),Struts 2支持多语言环境,方便创建国际化的应用程序。 11. **Tiles...

    Struts2,Spring,Hibernate jar包下载

    **Struts2** 是一个基于MVC设计模式的Web开发框架,它在Struts1的基础上进行了很多改进,提供了更灵活的控制结构和更好的异常处理机制。Struts2的核心组件包括Action、Result、Interceptor等,它们协同工作,实现了...

    struts2学习笔记九(第9讲.Struts2的校验框架 续)

    Struts2的校验框架通过提供声明式和编程式的验证方式,使得数据验证变得更为简洁和灵活。 1. **声明式验证**:在Action类中,我们可以使用注解来定义字段的验证规则。例如,`@RequiredFieldValidator`用于检查字段...

    Struts的Validator-rules详解

    8. **整合Struts2**:尽管这里讨论的是Struts1的Validator-rules,但在Struts2中,验证机制已经进化为更强大的Struts2 Validation,它提供了更灵活的注解式验证和更丰富的验证选项。 总的来说,Struts的Validator-...

Global site tag (gtag.js) - Google Analytics