很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自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>
这样异常信息就会被显示了。
分享到:
相关推荐
从网上搜索的一段关于struts1.x自定义异常处理的方法。
我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理机制,我们在业务层会跑出我们遇到业务处理异常 ,然后交由...
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与MVC框架介绍; 使用Struts框架开发第一个应用; Struts核心组件介绍; Struts配置; 开发国际化的Struts应用;...Struts框架中的异常处理; 在Struts框架中使用数据库连接池; Struts自定义标记的使用
struts2的拦截器实现细颗粒度权限控制;struts2的拦截器实现异常处理;源代码;页面;教程
12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与...
网上常见本文,我把它整理了一下,更适于阅读。本文首先对 Easy Struts...本文还介绍了增强 Struts 应用程序的各种方法,例如连接数据库,对应用程序进行模块化,内容的国际化和本地化,异常处理和创建自定义插件等等。
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 ...
07 声明式异常处理 33 08 国际化 35 一、 国际化资源文件 35 二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-...
struts做的一个网上购物系统的练习,包括了以下几个方面的内容: 1.struts国际化处理, 2.动态DynaValidatorForm的用法, ...5.自定义异常处理, 6.JNDI+Oracle10.2数据库连接池的配置 7.iterate迭代器和JAVA泛型的用法
07 声明式异常处理 33 08 国际化 35 一、 国际化资源文件 35 二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-...
我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...
action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。 bean:创建一个JavaBean实例。。 date:格式化输出一个日期属性。 debug:生成一个调试链接,当单击该链接时,可以看到...
action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。 bean:创建一个JavaBean实例。。 date:格式化输出一个日期属性。 debug:生成一个调试链接,当单击该链接时,可以看到...
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 读取...
本文还介绍了增强Struts应用程序的各种方法,例如连接数据库,对应用程序进行模块化,内容的国际化和本地化,异常处理和创建自定义插件等等。最后,您将学习如何将自己的Struts应用程序部署到TomcatWeb服务器上。...
SpringMVC笔记内容:第一天(SpringMVC的概述、SpringMVC与Struts2优势分析、重要组件、运行原理、SpringMVC环境搭建、@RequestMapping注解详解、...第三天(SpringMVC异常处理、自定义拦截器、拦截器栈) --author:
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 ...