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中与Action相关的异常,如`org.apache.struts.action.ActionException`,你可以在Action类中直接抛出,框架会自动处理这些异常,并根据`struts-config.xml`中的配置进行相应操作。 总结来说,...
6. **异常处理**:通过`global-exceptions`配置,Struts1.x可以捕获并处理全局范围内的异常,提供统一的错误页面,增强了应用的健壮性。 7. **拦截器(Plug-ins)**:虽然Struts1.x的拦截器功能相对较弱,但仍然...
标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...
事务声明在Dao中,但是通常都会在Service中来处理多个业务逻辑的关系,如:删除,更新等,此时如果在执行了一个步骤之后抛出抛出异常就会导致数据部完整,所以事务不应该在Dao中处理,而应该在Service中处理,这也是...
了解了拦截器的基本原理后,我们可以通过`Struts2.x 拦截器.avi`这个视频文件深入学习Struts2拦截器的实现细节,比如如何编写自定义拦截器、如何配置拦截器链、如何处理异常等。`readme.txt`可能是关于这个主题的...
牛牧的"Struts2.x深入浅出"教程是针对这个框架的深度解析,主要帮助开发者理解并熟练掌握Struts2的核心概念和实践技巧。 在第二部分中,我们首先会接触到`struts2_GetFromData`,这部分主要讲解了如何从HTTP请求中...
文档给出了一个基础的struts-config.xml文件结构,其中包含了声明数据源、ActionForm、全局异常、全局转发、动作映射等标签。这些配置项是指导Struts如何与后端逻辑进行交互、如何处理客户端请求与服务器响应的核心...
2. **配置Interceptor**:在struts.xml配置文件中,可以通过`<interceptors>`标签定义拦截器栈,并使用`<interceptor>`子标签声明具体的拦截器。`<action>`标签中的`interceptor-ref`属性用于指定该Action应使用的...
在3.0.x系列中,Spring提供了对Struts 1.x的支持,允许开发者利用Spring的特性来增强Struts应用,例如事务管理、AOP(面向切面编程)、数据绑定和类型转换等。 1. **Spring与Struts的整合机制** Spring与Struts的...
5. `spring-tx.jar`:处理事务管理,支持编程式和声明式事务。 整合Struts2、Hibernate3.x和Spring,需要将上述所有jar包添加到项目类路径中。这些框架的协同工作,可以实现高效的MVC架构,通过Spring管理Struts2的...
2. **标签库**:`struts-taglib.jar`包含了Struts提供的自定义JSP标签,例如`<logic:xxx>`、`<bean:xxx>`和`<html:xxx>`等,它们极大地简化了视图层的开发,使得开发者可以通过声明式的方式编写页面逻辑。...
在Struts 1.x版本中,开发者需要配置一个Servlet(ActionServlet),并在web.xml中声明一个名为struts-config.xml的配置文件,该文件包含了动作映射、表单类和其他相关配置。而在Struts2中,这一过程发生了变化。...
- Spring事务管理可以通过编程式和声明式两种方式实现,声明式事务管理通常结合注解或XML配置完成。 - Spring AOP允许在不修改代码的情况下添加功能,如日志、事务管理等,通过定义切点和通知来实现。 4. 综合...
Struts2提供了强大的数据校验、结果类型、国际化和异常处理机制,使得开发者可以更加专注于业务逻辑而不是底层实现。此外,Struts2还与许多其他流行的技术如Spring、Hibernate等有很好的集成。 **2. Struts2.5.x...
相比于它的前身Struts1.x,Struts2提供了一系列改进和增强的功能。在本文中,我们将深入探讨Struts2的核心组件——Action,以及如何配置和使用它来构建一个简单的Hello World应用程序。 在Struts1.x中,Action是...
这个版本的Struts是在Apache软件基金会的支持下发布的,是Struts 1.x系列的一个稳定更新。 在Struts 1.3.9中,开发者可以找到以下关键组件和特性: 1. **Lib目录**:此目录包含了运行Struts应用程序所需的库文件。...
Spring 2.x版本的声明式事务配置模板是开发者常用的一种方式,它通过AOP(面向切面编程)实现事务的自动管理,使得开发者无需在业务代码中显式调用事务开始、提交或回滚等操作。下面我们将详细探讨Spring 2.x的声明...
JPA提供了一种声明式的对象/关系映射机制,使得开发者可以更加专注于业务逻辑而非底层的数据库操作细节。 #### 四、整合步骤 下面我们将按照开发流程,逐步介绍如何将这些框架整合起来。 ##### 步骤1:集成...
这本书的第二版主要涵盖了Struts 1.x版本的相关内容,当时是Struts社区的主流版本。 在Struts框架中,重要知识点包括: 1. **MVC模式**:Struts的核心在于实现MVC设计模式,将业务逻辑、数据和用户界面分离,提高...