`
g21121
  • 浏览: 685561 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts处理自定义异常

 
阅读更多

很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。

非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。

此处我们用的是非运行时异常,首先定义一个异常LoginException:

/**
 * 类描述:登录相关异常
 * 
 * @author ming.li <a href="http://g21121.iteye.com">iteye blog</a>
 * @time 2011-4-27 下午01:08:11
 */
public class LoginException extends Exception {

	/** 版本号 */
	private static final long serialVersionUID = 5843727837651089745L;
	/** 错误码 */
	private String messageKey;
	/** 参数 */
	private Object[] params;

	/**
	 * 默认构造函数
	 */
	public LoginException() {
		super();
	}

	/**
	 * 登录相关异常,页面直接显示错误信息<br/>
	 * 
	 * @param messageKey
	 *            错误码
	 * @param params
	 *            参数
	 */
	public LoginException(String messageKey, Object... params) {
		this.messageKey = messageKey;
		this.params = params;
	}

	/**
	 * @return the messageKey
	 */
	public String getMessageKey() {
		return messageKey;
	}

	/**
	 * @return the params
	 */
	public Object[] getParams() {
		return params;
	}

}

这是个登录异常,用来表示登录情况下发生的各种错误。这个异常只有基本内容,可以根据你的情况自行添加。

 

在发生登录错误时调用代码:

public String login() throws LoginException {
    throw new LoginException("9999");// 用户名或密码错误
}

其中的9999是错误码,这个可以自己定义,用来在国际化时显示不同信息。

此时抛出了一个登录异常的信息,我们就需要在跳转是捕获并显示在页面中。

首先在struts的action配置中捕获此异常:

<package name="login-default" namespace="/" extends="struts-default">

<!-- 登录 -->
<action name="login" class="loginAction" method="login">
	<exception-mapping result="login" exception="com.xxx.exception.LoginException"/>
	<result name="success">index.jsp</result>
	<result name="login">login.jsp</result>
</action>
</package>

 此时我们可以看到,当抛出LoginException时struts会捕获并跳转到login这个result上,进而跳转到login.jsp。

在login.jsp中我们就需要去显示异常信息:

<%@taglib prefix="s" uri="/struts-tags"%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<!-- 异常信息显示 -->
<c:if test="${!empty exception}"><s:property value="%{getText(exception.messageKey)}"/></c:if>

 这样异常信息就会被显示了。

1
0
分享到:
评论

相关推荐

    struts1.x 异常处理机制

    从网上搜索的一段关于struts1.x自定义异常处理的方法。

    利用java filter 实现业务异常拦截源码

    我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理机制,我们在业务层会跑出我们遇到业务处理异常 ,然后交由...

    struts2讲义_吴峻申

    1.2.4 Struts2配置文件处理 15 1.2.5 OGNL介绍和类型转换目的 15 1.2.6 进行校验 16 1.2.7 Web项目国际化根由 16 1.2.8 SiteMesh页面布局框架简介 17 1.3 我们为什么要用Struts2 17 1.4 Web项目中使用Struts2初探 20...

    struts入门电子书

    Struts与MVC框架介绍; 使用Struts框架开发第一个应用; Struts核心组件介绍; Struts配置; 开发国际化的Struts应用;...Struts框架中的异常处理; 在Struts框架中使用数据库连接池; Struts自定义标记的使用

    自定义拦截器(实现异常处理+细颗粒权限控制).zip

    struts2的拦截器实现细颗粒度权限控制;struts2的拦截器实现异常处理;源代码;页面;教程

    Struts2入门教程(全新完整版)

    12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与...

    使用 Easy Struts for Eclipse 开发 Struts

    网上常见本文,我把它整理了一下,更适于阅读。本文首先对 Easy Struts...本文还介绍了增强 Struts 应用程序的各种方法,例如连接数据库,对应用程序进行模块化,内容的国际化和本地化,异常处理和创建自定义插件等等。

    深入浅出Struts2(附源码)

    3.6 异常处理:exception-mapping元素 47 3.7 通配符映射 48 3.8 动态方法调用 51 3.9 对动作类进行测试 51 3.10 小结 51 第4章 OGNL 52 4.1 Value Stack栈 52 4.2 读取Object Stack里的对象的属性 53 4.3 ...

    Struts2 学习笔记

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

    网上购物系统struts+Oracle10.2

    struts做的一个网上购物系统的练习,包括了以下几个方面的内容: 1.struts国际化处理, 2.动态DynaValidatorForm的用法, ...5.自定义异常处理, 6.JNDI+Oracle10.2数据库连接池的配置 7.iterate迭代器和JAVA泛型的用法

    Struts2帮助```````

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

    SpringBoot 自定义拦截器 的 源代码

    我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...

    struts2 标签库 帮助文档

    action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。 bean:创建一个JavaBean实例。。 date:格式化输出一个日期属性。 debug:生成一个调试链接,当单击该链接时,可以看到...

    Struts2+API+标签全解+网页说明

    action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。 bean:创建一个JavaBean实例。。 date:格式化输出一个日期属性。 debug:生成一个调试链接,当单击该链接时,可以看到...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    3.6 异常处理:exception-mapping元素 47 3.7 通配符映射 48 3.8 动态方法调用 51 3.9 对动作类进行测试 51 3.10 小结 51 第4章 OGNL 52 4.1 Value Stack栈 52 4.2 读取Object Stack里的对象的属性 53 4.3 读取...

    使用EasyStrutsforEclipse开发Struts

    本文还介绍了增强Struts应用程序的各种方法,例如连接数据库,对应用程序进行模块化,内容的国际化和本地化,异常处理和创建自定义插件等等。最后,您将学习如何将自己的Struts应用程序部署到TomcatWeb服务器上。...

    吴天雄--SpringMVC笔记.doc

    SpringMVC笔记内容:第一天(SpringMVC的概述、SpringMVC与Struts2优势分析、重要组件、运行原理、SpringMVC环境搭建、@RequestMapping注解详解、...第三天(SpringMVC异常处理、自定义拦截器、拦截器栈) --author:

    低清版 大型门户网站是这样炼成的.pdf

    2.1.9 struts 2的异常处理 52 2.2 struts 2配置精要 54 2.2.1 web.xml中struts 2的配置实现 54 2.2.2 struts 2属性配置文件struts.properties详解 55 2.2.3 struts 2核心配置文件struts.xml详解 57 2.3 struts ...

Global site tag (gtag.js) - Google Analytics