`
wanglihu
  • 浏览: 918315 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类

struts2异常处理(全局与局部异常定义)

阅读更多
一.struts2局部异常处理
1.exception.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>局部异常测试</title>
  </head>
  
  <body>
	<s:form action="exception.action" method="post">
		<s:textfield name="username" label="username"></s:textfield>
		<s:submit value="submit"></s:submit>
	</s:form>
  </body>
</html>

2.result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>局部异常成功页面</title>
  </head>
  
  <body>
	username:${requestScope.username }
  </body>
</html>

3.usernameException.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>局部异常页面</title>
  </head>
  
  <body>
	usernameException
  </body>
</html>

4.UsernameException.java(异常类定义)
package com.hitsoft.exception;

public class UsernameException extends Exception{
	private String message;
	public UsernameException(String message){
		super(message);
		this.message = message;
	}
	@Override
	public String getMessage() {
		return super.getMessage();
	}
	public void setMessage(String message) {
		this.message = message;
	}

}

5.ExceptionAction.java
package com.hitsoft.action;
import com.hitsoft.exception.UsernameException;
import com.opensymphony.xwork2.ActionSupport;

public class ExceptionAction extends ActionSupport{
	private String username;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	
	public String execute() throws Exception{
		if(!"hello".equals(username)){
			throw new UsernameException("username invalid!");
		}else{
			return "success";
		}	
	}
}

6.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="struts2"  extends="struts-default">
	<!-- 全局结果 -->
    	<global-results>
    		<result name="usernameInvalid" type="redirect">/usernameException.jsp</result>
    	</global-results>
	<action name="exception" class="com.hitsoft.action.ExceptionAction">
	<!-- 局部异常映射 -->
		<exception-mapping result="usernameInvalid" exception="com.hitsoft.exception.UsernameException"></exception-mapping>
		<result name="success">/result.jsp</result>
		<result name="input">/exception.jsp</result>
	</action>
    </package>
</struts>


二.struts2全局异常处理
1.exception.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>全局异常测试</title>
  </head>
  
  <body>
	<s:form action="exception.action" method="post">
		<s:textfield name="password" label="password"></s:textfield>
		<s:submit value="submit"></s:submit>
	</s:form>
  </body>
</html>

2.result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>全局异常成功页面</title>
  </head>
  
  <body>
	password:${requestScope.password }
  </body>
</html>

3.passwordException.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>全局异常页面</title>
  </head>
  
  <body>
	passwordException
  </body>
</html>

4.PasswordException.java(异常类定义)
package com.hitsoft.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;
	}
}


5.ExceptionAction.java
package com.hitsoft.action;
import com.hitsoft.exception.PasswordException;
import com.opensymphony.xwork2.ActionSupport;

public class ExceptionAction extends ActionSupport{
	private String password;
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public String execute() throws Exception{
		if(!"world".equals(password)){
			throw new PasswordException("password invalid!");
		}else{
			return "success";
		}	
	}
}

6.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="struts2"  extends="struts-default">
	<!-- 全局结果 -->
    	<global-results>
    		<result name="passwordInvalid" type="redirect">/passwordException.jsp</result>
    	</global-results>
    	<!-- 全局异常映射 -->
    	<global-exception-mappings>
    		<exception-mapping result="passwordInvalid" exception="com.hitsoft.exception.PasswordException"></exception-mapping>
    	</global-exception-mappings>
	<action name="exception" class="com.hitsoft.action.ExceptionAction">
		<result name="success">/result.jsp</result>
		<result name="input">/exception.jsp</result>
	</action>
    </package>
</struts>
分享到:
评论

相关推荐

    Struts2之异常处理案例struts003

    Struts2提供了内置的异常处理机制,允许开发者定义全局和局部的异常映射,以控制应用程序中出现异常时的行为。全局异常处理适用于整个应用,而局部异常处理则针对特定Action进行。 2. **Struts2的...

    struts2中异常处理(demo)

    2. **动作级别的异常处理**:除了全局异常处理,还可以为每个具体Action定义局部的异常处理。在`&lt;action&gt;`元素内使用`&lt;exception-mapping&gt;`标签,可以为特定的Action捕获并处理异常。 ```xml &lt;!-- ... --&gt; ```...

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

    Struts2提供了多种方式来捕获和处理异常,帮助开发者优雅地处理程序中的错误情况。以下是Struts2异常处理的四种主要方法,以及相关的知识点详解: 1. **全局异常映射(Global Exception Mapping)** 全局异常映射...

    struts2的异常处理机制

    Struts2的拦截器(Interceptor)也可以参与到异常处理中,通过实现`ExceptionMappingInterceptor`接口,可以在拦截器中捕获并处理异常,提供更灵活的异常处理策略。 通过以上机制,Struts2允许开发者在处理业务...

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

    这种方式允许在Action类的execute方法中捕获和处理异常,但可能导致代码混乱且不易维护。 在实际应用中,我们可能会遇到一些特定的异常情况,比如业务逻辑错误。这时,我们可以通过创建自定义异常类来封装这些错误...

    Struts2 Struts2 超好的Struts2 pdf 文档

    9. **异常处理**:Struts2提供了全局和局部的异常处理机制,可以统一处理应用中的异常情况,提高代码的可维护性和用户体验。 10. **国际化(i18n)**:Struts2支持多语言环境,通过资源包(Properties文件)来实现...

    黑马程序员Struts2笔记

    Struts2提供了全局和局部两种异常处理方式。全局异常处理可以在struts.xml中定义,对所有Action生效;局部异常处理则可以在Action类中定义,针对特定的Action或方法。 8. **OGNL表达式语言** OGNL(Object-Graph ...

    struts2学习笔记总结

    Struts2提供了全局和局部两种异常处理方式。全局异常处理配置在struts.xml中,可捕获所有Action的异常;局部异常处理则在Action类中通过@ExceptionHandler注解指定。 八、最佳实践 1. 使用ActionSupport基类,它...

    struts2的复习

    11. 异常处理:Struts2提供了全局和局部的异常处理机制,开发者可以定义特定的错误页面或全局错误处理策略。 九、国际化与本地化 12. 国际化:Struts2支持多语言环境,通过资源文件(如.properties或.properties....

    struts2完整例子

    9. **异常处理**:Struts2提供了一套完善的异常处理机制,通过`&lt;global-exception-mappings&gt;`和`&lt;package&gt;`内的`&lt;exception-mapping&gt;`标签,可以定义全局或局部的异常处理策略。 10. ** strut2-helloworld 示例**:...

    Struts2 技术内幕-深入解析Struts2架构设计与实现原理

    8. **异常处理**:Struts2提供了一套全面的异常处理机制,允许开发者通过全局和局部异常映射来控制错误页面的显示和异常的处理流程。 9. **国际化与本地化**:Struts2支持多语言环境,可以通过资源文件实现界面文本...

    Struts2实验案例项目

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

    struts2电子书书籍系列

    8. **错误与异常处理**:Struts2提供了全局和局部两种错误处理方式,可以自定义错误页面,实现友好的错误提示。 9. **表单验证**:Struts2的Validator组件可以对用户输入进行验证,支持JSR303/JSR349 Bean ...

    struts2 demo project

    8. **Exception Handling**:Struts2提供了全局和局部的异常处理机制,可以统一处理应用程序中的异常,并返回合适的错误页面。 9. **Internationalization(国际化)**:Struts2支持多语言环境,可以通过资源包...

    struts2-jar包

    10. **Exception Handling**:Struts2提供了全局和局部的异常处理机制,方便捕获和处理运行时异常。 在使用"struts2-jar包"时,通常需要将jar包添加到项目的类路径中,然后按照Struts2的约定或配置来编写Action类、...

    Struts2参考手册

    Struts2提供了全局和局部的异常处理机制,允许开发者对特定类型的异常进行捕获并定制响应页面。 10. **测试支持** Struts2提供了ActionTest和MockStruts等工具,方便进行单元测试和集成测试,确保应用的正确性。 ...

    struts2实战.pdf

    10. **异常处理**:Struts2提供了全局和局部异常处理机制,可以在框架级别统一处理运行时异常,提高应用的健壮性。 11. **插件体系**:Struts2具有丰富的插件库,如Spring插件、Freemarker插件等,可以方便地集成到...

    struts2测试案例

    9. **异常处理**:Struts2允许全局或局部地处理应用程序中的异常,提供了一种优雅的方式来管理错误和异常信息。 10. **插件机制**:Struts2有一个强大的插件系统,可以扩展框架的功能,如Spring插件可以方便地与...

    struts2框架jar包

    8. **异常处理**:Struts2提供了全局和局部的异常处理机制,可以自定义错误页面和异常处理逻辑,确保应用程序的健壮性。 9. **国际化支持**:通过资源文件,Struts2可以轻松实现多语言支持,为不同地区的用户提供...

    黑马Struts2视频(day2)

    - Struts2提供了一套完善的异常处理机制,包括全局和局部的异常配置,可以统一处理应用程序可能出现的错误。 8. **最佳实践与性能优化**: - 使用Struts2时应遵循最佳实践,如合理设计Action接口,避免过多的...

Global site tag (gtag.js) - Google Analytics