`
g21121
  • 浏览: 694306 次
  • 性别: 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
分享到:
评论

相关推荐

    Struts2之异常处理案例struts003

    然后在配置文件中引用这些自定义异常,实现定制化的异常处理逻辑。 7. **结果类型(Result Types)** Struts2支持多种结果类型,如`redirect`、`redirectAction`、`stream`等,异常处理时可以指定不同的结果类型来...

    Struts2自定义校验框架

    - 利用异常处理,捕获并处理校验过程中可能出现的错误。 8. **总结** Struts2的自定义校验框架允许开发者根据具体需求创建和配置校验器,提高了代码的灵活性和可扩展性。通过理解和实践自定义校验,开发者可以更...

    基于struts2 自定义标签 分页

    7. **错误处理与测试**:确保对可能出现的异常进行适当的处理,例如数据库连接失败、SQL执行异常等。编写单元测试和集成测试,确保分页功能的正确性和健壮性。 通过以上步骤,你可以创建一个基于Struts2的自定义...

    struts手动异常处理

    4. **自定义异常类**:创建自定义异常类可以帮助我们更好地组织和分类应用中的错误。例如,可以定义一个`InvalidInputException`,当用户输入无效时抛出,以便在不同地方捕获并处理。 5. **使用`ActionError`和`...

    struts2中异常处理(demo)

    3. **自定义异常类和结果**:开发者还可以创建自定义的异常类,以便更好地封装和分类错误。同时,可以定义自定义的结果页面(如JSP、Freemarker模板等)来展示这些异常信息。 4. **Struts2拦截器**:异常处理还与...

    Struts2自定义标签

    // 处理异常 } return null; } } ``` #### 四、总结 通过以上步骤,我们成功地创建了一个Struts2自定义标签,并在JSP页面中实现了动态下拉列表的功能。自定义标签不仅可以简化页面代码,还能提高代码的复用性...

    Struts2异常处理机制

    自定义异常处理器可以实现更复杂的异常处理逻辑,比如发送邮件通知、记录日志等。 6. **配置文件中的异常处理设置** 在`struts.xml`配置文件中,异常处理的配置通常如下: ```xml ...

    struts2自定义拦截器

    虽然“表单上传”在给定的描述中与自定义拦截器直接关联不大,但在Struts2中,我们通常会结合`struts2-convention-plugin` 或者 `struts2-dojo-plugin` 来处理文件上传。`struts.multipart.parser` 属性可以配置...

    Struts 2 自定义MVC 框架

    6. **异常处理**:定义全局异常处理器,对可能出现的错误情况进行统一处理,增强应用的健壮性。 通过自定义Struts 2 MVC框架,我们可以更深入地理解Struts 2的工作机制,例如: - 如何通过拦截器链处理请求,控制...

    Struts1异常处理

    3. **自定义异常处理**:除了全局异常处理,还可以在`&lt;action&gt;`标签内定义特定的异常处理规则。这样可以针对不同类型的异常执行不同的处理逻辑: ```xml ``` 在这个例子中,如果`MyAction`类在执行过程中...

    Struts2 自定义标签

    在Struts2中,自定义标签是开发者扩展框架功能和简化视图层编码的重要手段。自定义标签允许将复杂的逻辑封装到可重用的组件中,提高代码的可读性和可维护性。 在Struts2中创建自定义标签,通常涉及以下几个步骤: ...

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

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

    Struts的自定义转换器

    自定义转换器使得Struts框架更加灵活,能够处理复杂或特殊的数据类型,提高了代码的可维护性和用户体验。通过编写自定义转换器,开发者可以确保数据转换过程符合业务规则,减少因类型不匹配导致的错误。在实际开发中...

    struts2自定义类型转换器

    通过这种方式,我们可以优雅地处理自定义类型的转换,确保用户输入的数据能准确无误地映射到我们的业务对象上。自定义类型转换器是Struts2框架灵活性的一个重要体现,允许开发人员根据具体需求定制数据处理逻辑,...

    struts1.x 异常处理机制

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

    struts2的异常处理机制

    Struts2是一个流行的Java web框架,它提供了强大的异常处理机制,使得开发者能够优雅地管理和展示在应用程序中出现的错误和...同时,通过自定义异常和异常处理策略,可以为用户提供更加友好的错误提示,提升用户体验。

    自定义 validate验证 struts1框架

    5. **异常处理**:在Action类中,你需要检查`ActionErrors`对象是否有错误,如果有,可以选择重定向到错误页面,或者显示错误信息并允许用户修正输入。 通过自定义`validate`验证,开发者不仅可以验证基本的数据...

    基于Struts的异常处理

    在给定的文件中,我们看到了一个基于Struts的异常处理方案,主要涉及两个关键点:自定义异常类和自定义异常处理器。 首先,我们来看自定义异常类`AppException`,它是对Java内置的`RuntimeException`的扩展。这个类...

    Struts2的异常处理

    除了这些基本的处理方式,Struts2还提供了自定义异常拦截器(Interceptor)的能力。通过编写自己的拦截器,可以在异常发生时执行自定义的逻辑,如记录日志、发送报警邮件等。下面是一个简单的异常拦截器示例: ```...

Global site tag (gtag.js) - Google Analytics