struts2 中的一大特点就是拦截器,特别是拦截器可以组成拦截链,一篇很好的介绍文章可以辅助学习之,推荐之这里
http://www.blogjava.net/max/archive/2006/12/06/85925.html
这里结合项目中的具体来个感性认识:
比如在购物车的时候,一个典型的场景为当用户在一个购物车选择时,如果要把物品从购物车中删除,删除后其实是继续显示当前的购物车的,
但只不过是购物车里的物品少了一件,因此可以这样去处理:
首先是 删除商品的控制器所对应的xml配置文件如下
<!-- This action 负责将用户不需的商品从购物车删除 -->
<action name="deletefromcart" class="eshop.action.DeletefromCart">
<interceptor-ref name="completeStack"></interceptor-ref>
<result name="success" type="chain">displaycart</result>
<result name="error" >error.html</result>
</action>
当删除成功后,其中用type=chain的拦截器,指定让其去执行displaycart的控制器,
<action name="displaycart" class="eshop.action.DisplayCart">
<interceptor-ref name="completeStack"></interceptor-ref>
<result name="success" type="velocity>ShoppingCart.vm</result>
<result name="error" >error.html</result>
</action>
而这个displaycart的控制器其实就是刷新显示了当前的购物车了
分享到:
相关推荐
OGNL(Object-Graph Navigation Language)是Struts2中的表达式语言,用于在Action和视图之间传递数据。它可以方便地访问对象属性,进行条件判断和算术运算,使得数据操作更加灵活。 **数据校验** Struts2提供了...
首先,关于`Action result`,它是Struts2中的一个关键概念,用于控制请求后的视图呈现。四种转发类型通常包括:`dispatcher`(默认),将请求分派到指定的JSP或Servlet;`redirect`,执行HTTP重定向,避免回发问题;...
2. **拦截器**:拦截器是Struts 2中用于预处理和后处理请求的一种机制,可以用来实现诸如参数绑定、验证、异常处理等功能。 - **自定义拦截器**:开发者可以通过实现`Interceptor`接口来自定义拦截器,以满足特定的...
此外,OGNL(Object-Graph Navigation Language)表达式语言被广泛应用于Struts2中,用于访问和操作对象图,提高了代码的灵活性和表达力。 6. **Action调用与结果返回**:在Struts2中,Action的调用通过配置文件中...
ConfigurationProvider 是 Struts2 中配置文件的解析器,Struts2 中的配置文件主要是 XmlConfigurationProvider 及其子类 StrutsXmlConfigurationProvider 来解析。ConfigurationProvider 负责解析配置文件,并将...
本文将通过一个具体的示例来详细介绍如何在Struts2项目中配置过滤器。 #### 二、过滤器配置实例分析 ##### 2.1 web.xml配置解析 在给定的web.xml配置文件中,可以看到对`SessionInvalidate`过滤器进行了定义和...
在Struts2中,Action通过实现`Action`接口或继承`ActionSupport`类来定义。每个Action对应一个特定的URL请求,且可以有多个方法来处理不同的HTTP请求类型。 2. **Interceptor**:拦截器在Action执行前后进行操作,...
### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...
值得注意的是,在Struts 2中,即使是简单的POJO(Plain Old Java Object)对象,只要包含`execute`方法,就可以作为Action使用。 #### 2. 线程模式方面的对比 - **Struts 1**:Action采用单例模式,这意味着所有...
Struts2支持轻量级的依赖注入(IoC),使得开发者可以在配置文件中声明对象的创建和依赖关系,而不需要在代码中显式地创建对象或设置属性。这大大简化了应用程序的开发过程,提高了代码的可读性和可维护性。在上面的...
拦截器在Struts2中扮演着至关重要的角色,它们是AOP(面向切面编程)的一个实现,用于在Action执行前后插入额外的功能。下面将详细探讨Struts2拦截器及其工作原理。 ### 一、Struts2 拦截器概念 1. **拦截器是什么...
因此,在Struts2中,Action的角色从原来的Controller转变为Model的一部分(即POJO),而Controller的角色则由Struts2框架本身来承担。 #### 二、Struts2的简化措施 **1. FormBean与Action合一** 在Struts1中,...
在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的基本概念。拦截器是在Action调用之前和之后执行的一段代码,可以用来做日志记录、权限检查...
此外,Struts2允许Action通过拦截器链(Interceptor Chain)进行预处理和后处理,使得功能更加丰富和灵活。 #### 工作流程和请求处理 Struts1.x的工作流程较为固定,每个Action的执行都遵循一个预定的流程,从请求...
在Struts2框架中,异常处理是非常重要的一个环节,它能够帮助开发者有效地管理和捕获应用程序运行过程中可能出现的各种异常情况。 - **异常处理流程**: - 在执行`UserAction`类中的`saveUser()`方法时,如果抛出...