`

Struts1.X声明式异常学习

阅读更多

Struts声明式异常

1.编写相应的异常类;
2.捕捉相应的异常类,进行抛出,可以把该代码封装到相应的方法中,比如在LoginDAO这个类中,有个isLogin()方法判断是否登陆成功,同时根据需要抛出相应异常,如:UserNotFoundException、PasswordErrorException等。在LoginAction这个Action类中调用LoginDAO类中的isLogin()方面验证用户是否登陆成功;
3.在国际化资源文件中,编写相应异常的key,以及对于的value值;

4.在struts-config.xml中配置以上相关需要的信息,同时,配置<exception/>标签,指定相应的key,type的属性,key值对应国际化资源文件中异常的key值,type为自己编写的异常类。同时,在相应Action中配置input属性,该属性为出现异常时进行跳转的页面。如在<exception/>中配置path属性,则path属性优先于<action/>中的input属性。

5.在需要显示错误提示的jsp页面用<html:errors/>标签进行错误信息读取。

 

LoginDAO类:

public class LoginDAO {
	public void isLogin(String username,String password){
		if(!(username.equals("admin"))){
			throw new UserNotFoundException();
//事先声明的异常类
		}
		else if(!(password.equals("admin"))){
			throw new PasswordErrorException()
;//事先声明的异常类
		}
	}
}

LoginAction类:


package wiki.struts;  

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;

public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		DynaActionForm daf = (DynaActionForm)form;
		String username = (String)daf.get("username");
		String password  = (String)daf.get("password");
		LoginDAO loginDAO = new LoginDAO();
		loginDAO.isLogin(username, password);
		return mapping.findForward("success");
	}
} 
  

 

struts-config.xml中的部分配置

<action-mappings>
		<action path="/login" type="wiki.struts.LoginAction"
			name="loginForm" scope="request" input="/login.jsp"
>
			<exception key="login.user.name.error"
				type="wiki.struts.UserNotFoundException"   path="/login_error.jsp" />
			<exception key="login.user.password.error"
				type="wiki.struts.PasswordErrorException" path="/login_error.jsp" />

			<forward name="success" path="/login_success.jsp" />
		</action>
 
分享到:
评论

相关推荐

    struts1.x 异常处理机制

    此外,对于Struts1.x中与Action相关的异常,如`org.apache.struts.action.ActionException`,你可以在Action类中直接抛出,框架会自动处理这些异常,并根据`struts-config.xml`中的配置进行相应操作。 总结来说,...

    Struts1.x_action

    6. **异常处理**:通过`global-exceptions`配置,Struts1.x可以捕获并处理全局范围内的异常,提供统一的错误页面,增强了应用的健壮性。 7. **拦截器(Plug-ins)**:虽然Struts1.x的拦截器功能相对较弱,但仍然...

    Struts2.X+Hibernate3.X+Spring2.5 整合

    标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...

    Spring3.x_Struts2.x_Hibernate3.x整合之声明式事务配置

    事务声明在Dao中,但是通常都会在Service中来处理多个业务逻辑的关系,如:删除,更新等,此时如果在执行了一个步骤之后抛出抛出异常就会导致数据部完整,所以事务不应该在Dao中处理,而应该在Service中处理,这也是...

    struts2.X 拦截器源码

    了解了拦截器的基本原理后,我们可以通过`Struts2.x 拦截器.avi`这个视频文件深入学习Struts2拦截器的实现细节,比如如何编写自定义拦截器、如何配置拦截器链、如何处理异常等。`readme.txt`可能是关于这个主题的...

    百度文库 牛牧struts2.x深入浅出

    牛牧的"Struts2.x深入浅出"教程是针对这个框架的深度解析,主要帮助开发者理解并熟练掌握Struts2的核心概念和实践技巧。 在第二部分中,我们首先会接触到`struts2_GetFromData`,这部分主要讲解了如何从HTTP请求中...

    struts1教程.pdf

    文档给出了一个基础的struts-config.xml文件结构,其中包含了声明数据源、ActionForm、全局异常、全局转发、动作映射等标签。这些配置项是指导Struts如何与后端逻辑进行交互、如何处理客户端请求与服务器响应的核心...

    Struts2.x_Interceptor

    2. **配置Interceptor**:在struts.xml配置文件中,可以通过`&lt;interceptors&gt;`标签定义拦截器栈,并使用`&lt;interceptor&gt;`子标签声明具体的拦截器。`&lt;action&gt;`标签中的`interceptor-ref`属性用于指定该Action应使用的...

    org.springframework.web.struts-sources-3.0.4.RELEASE.jar

    在3.0.x系列中,Spring提供了对Struts 1.x的支持,允许开发者利用Spring的特性来增强Struts应用,例如事务管理、AOP(面向切面编程)、数据绑定和类型转换等。 1. **Spring与Struts的整合机制** Spring与Struts的...

    struts2 +hibernate3.x + sping 所有类库 jar包

    5. `spring-tx.jar`:处理事务管理,支持编程式和声明式事务。 整合Struts2、Hibernate3.x和Spring,需要将上述所有jar包添加到项目类路径中。这些框架的协同工作,可以实现高效的MVC架构,通过Spring管理Struts2的...

    struts-1.2.7-lib.tar.gz

    2. **标签库**:`struts-taglib.jar`包含了Struts提供的自定义JSP标签,例如`&lt;logic:xxx&gt;`、`&lt;bean:xxx&gt;`和`&lt;html:xxx&gt;`等,它们极大地简化了视图层的开发,使得开发者可以通过声明式的方式编写页面逻辑。...

    Struts2.0入门

    在Struts 1.x版本中,开发者需要配置一个Servlet(ActionServlet),并在web.xml中声明一个名为struts-config.xml的配置文件,该文件包含了动作映射、表单类和其他相关配置。而在Struts2中,这一过程发生了变化。...

    Struts+Hibernate+Spring面试题合集及答案常见题目经典精选汇总大全.docx

    - Spring事务管理可以通过编程式和声明式两种方式实现,声明式事务管理通常结合注解或XML配置完成。 - Spring AOP允许在不修改代码的情况下添加功能,如日志、事务管理等,通过定义切点和通知来实现。 4. 综合...

    Struts2.5.13jar包

    Struts2提供了强大的数据校验、结果类型、国际化和异常处理机制,使得开发者可以更加专注于业务逻辑而不是底层实现。此外,Struts2还与许多其他流行的技术如Spring、Hibernate等有很好的集成。 **2. Struts2.5.x...

    Struts2学习笔记

    相比于它的前身Struts1.x,Struts2提供了一系列改进和增强的功能。在本文中,我们将深入探讨Struts2的核心组件——Action,以及如何配置和使用它来构建一个简单的Hello World应用程序。 在Struts1.x中,Action是...

    struts1.3.9

    这个版本的Struts是在Apache软件基金会的支持下发布的,是Struts 1.x系列的一个稳定更新。 在Struts 1.3.9中,开发者可以找到以下关键组件和特性: 1. **Lib目录**:此目录包含了运行Struts应用程序所需的库文件。...

    Spring声明式事务配置模板2.x

    Spring 2.x版本的声明式事务配置模板是开发者常用的一种方式,它通过AOP(面向切面编程)实现事务的自动管理,使得开发者无需在业务代码中显式调用事务开始、提交或回滚等操作。下面我们将详细探讨Spring 2.x的声明...

    struts2+spring3.x+JPA1.0框架整合步骤

    JPA提供了一种声明式的对象/关系映射机制,使得开发者可以更加专注于业务逻辑而非底层的数据库操作细节。 #### 四、整合步骤 下面我们将按照开发流程,逐步介绍如何将这些框架整合起来。 ##### 步骤1:集成...

    Struts编程(第2版)

    这本书的第二版主要涵盖了Struts 1.x版本的相关内容,当时是Struts社区的主流版本。 在Struts框架中,重要知识点包括: 1. **MVC模式**:Struts的核心在于实现MVC设计模式,将业务逻辑、数据和用户界面分离,提高...

    Spring3.x企业应用开发实战书中源码

    1. **Spring3.x核心概念**:Spring3.x版本是Spring框架的一个重要里程碑,引入了许多新特性和改进。其中包括依赖注入(Dependency Injection, DI),使得对象之间的依赖关系可以通过配置文件或注解来管理,降低了...

Global site tag (gtag.js) - Google Analytics