异常的类型可以分为两种 --- 局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准。
简单例子 --- 配置声明式全局和局部异常处理
1、定义异常处理类
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;
}
}
public class PassWordException extends Exception{} //代码与UserNameException一样
2、action中处理方法
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
if(!"helloo".equals(this.getName()))
{
throw new UserNameException("username exception"); //抛出自定义的UserNameException异常
}
else if(!"worldo".equals(this.getPass()))
{
throw new PassWordException("password exception"); //抛出自定义的PassWordException异常
}else
{
return SUCCESS;
}
}
3、struts.xml中配置
<global-results> <!-- 配置全局返回页面 -->
<result name="passexception" type="redirect">/passexception.jsp</result>
</global-results>
<global-exception-mappings><!-- 声明式配置全局异常处理 -->
<exception-mapping result="passexception" exception="com.stu.exception.PassWordException"></exception-mapping>
</global-exception-mappings>
<!--exception-mapping标签中的每一个映射都包含两个属性——“exception”属性定义了异常类的全限定名,“result”标签定义了重定向的结果。程序遇到用户声明的异常,它就会去找result所对应的页面-->
<action name="register" class="com.stu.action.RegisterAction">
<exception-mapping result="nameexception" exception="com.stu.exception.UserNameException"></exception-mapping> <!--定义局部异常处理-->
<result name="success">/success.jsp</result>
<result name="input">/register.jsp</result>
<result name="invalid.token">/register.jsp</result> <!--表单重复提交返回页面,name必须为invalid.token-->
<result name="nameexception">/nameexception.jsp</result> <!--异常返回页面-->
<interceptor-ref name="token"> <!-- 表单重复提交拦截器 -->
<param name="includeMethods">execute</param>
</interceptor-ref>
</action>
4、jsp页面
<s:property value="exception.message"/> <!--输出异常信息-->
分享到:
相关推荐
在Struts2中,声明式异常处理是其强大的特性之一,它允许开发者通过配置文件来定义不同类型的异常如何被处理,而不是在每个动作类中进行硬编码。这样可以提高代码的可读性和可维护性,同时也方便了异常处理策略的...
声明式异常处理是Struts中的一种特性,允许我们在struts.xml配置文件中定义全局的异常映射,而不是在每个Action类中单独处理。这样可以实现异常处理的统一和标准化,减少代码重复,提高可维护性。声明式异常处理通常...
Struts2是一个强大的Java web开发框架,它提供了一种声明式异常处理机制,极大地简化了在应用程序中处理异常的方式。本示例代码旨在演示如何在Struts2中定义和使用声明式异常,以及如何访问异常属性。 声明式异常...
9. **异常处理**:Struts2提供了一套全面的异常处理机制,通过配置`<global-exception-mappings>`标签,可以定义全局的异常处理策略。 在"struts2lib"这个压缩包中,可能包含的文件有`struts2-core.jar`(核心库)...
### Spring声明式事务管理异常处理测试与总结 #### 背景介绍 Spring框架作为Java企业级应用领域中最重要的框架之一,提供了强大的依赖注入(DI)功能和面向切面编程(AOP)支持,同时也提供了丰富的事务管理机制。...
7. **表单验证**:Struts2提供了强大的表单验证功能,可以在Action类中定义验证规则,或者使用XML配置文件进行声明式验证。 通过这个新闻管理系统,新手可以学习到如何使用Struts2搭建一个完整的web应用,包括控制...
- **Struts2**:支持注解和XML方式的校验,可以实现声明式校验,减少了代码量并提高了可维护性。 7. 国际化和本地化: - **Struts1**:需要手动配置资源文件,处理相对复杂。 - **Struts2**:提供了一套更直观的...
- **声明式异常处理**:通过配置文件来处理异常,使得异常处理更加统一。 #### 七、国际化与本地化 - **国际化**:Struts2支持多语言环境,可以通过配置文件轻松地实现应用程序的国际化。 - **本地化**:除了多...
7. **异常处理**:Struts2提供了一套完整的异常处理机制,可以通过配置文件定义不同类型的异常对应的结果,使得错误页面显示更友好。 8. **国际化(Internationalization, i18n)**:Struts2支持多语言,通过资源包...
8. **异常处理**:Struts2提供了全局和局部的异常处理机制,可以自定义错误页面和异常处理逻辑,确保应用程序的健壮性。 9. **国际化支持**:通过资源文件,Struts2可以轻松实现多语言支持,为不同地区的用户提供...
常见的拦截器有Params(参数校验)、Validation(表单验证)、Exception(异常处理)等。 5. **结果类型(Result Types)**:Struts2支持多种结果类型,如dispatcher(用于转发到JSP页面)、stream(用于下载文件)和...
本文将深入探讨Struts2的异常处理机制,特别是声明式异常捕捉和异常映射。 首先,Struts2的异常处理机制允许开发者在不干扰Action执行逻辑的情况下,集中处理可能出现的异常。默认情况下,由于Action的`execute()`...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,极大地简化了创建交互式、数据驱动的Web应用程序的过程。这个“struts2标准jar包集”包含了运行和集成Struts2框架所需的核心库和其他...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
6. **异常处理**:Struts2提供了全局异常处理机制,可以捕获并处理运行时异常。在struts.xml中配置全局异常映射,定义不同类型的异常对应的结果页面,提高应用的健壮性。 7. **视图渲染**:在JSP页面中,通常使用...
SSH中的Spring框架则是Java企业级应用的核心组件,它提供了一种声明式事务管理方式,可以简化事务处理。Spring的IoC容器负责管理对象的生命周期和对象间的依赖关系,而AOP则用于实现代码的横向切面,如日志记录、...
这些核心库的引入,使得开发者可以充分利用Struts2的特性,如声明式异常处理、国际化支持、插件扩展性、以及强大的表单验证和数据绑定等功能。在实际开发中,还需要根据具体需求引入其他的库,如数据库连接池、JSON...
- **拦截器**:Struts2使用拦截器机制处理请求,提供了强大的功能如文件上传、异常处理等。 - **类型转换和验证**:自动进行表单数据的类型转换,并且可以自定义验证规则,确保数据的正确性。 - **国际化**:支持多...
8. **异常处理**:Struts2提供了全局和局部的异常处理策略,可以捕获并优雅地处理运行时异常。 9. **主题与皮肤**:Struts2允许定制外观和样式,通过更换主题(Theme)和皮肤(Skin)来改变用户界面的呈现效果。 ...