当action的返回结果类型为chain时,chain拦截器就会发生作用,把当前action和目标action都压入值栈。
那么如果目标action的返回结果依然是chain呢?当然也把目标action的目标也压入值栈。
亦即是说,
<action name="a" class="A">
<result name="success" type="chain">
<param name="actionName">b</param>
</result>
</action>
<action name="b" class="B">
<result name="success" type="chain">
<param name="actionName">c</param>
</result>
</action>
<action name="c" class="C">
<result name="success">someview</result>
</action>
在someview里加个s:debug标签,可以看到valueStack里有四个对象。
但是如果改一下,
<action name="a" class="A">
<result name="success" type="chain">
<param name="actionName">b</param>
</result>
</action>
<action name="b" class="B">
<result name="success">Bview</result>
</action>
<action name="b2" method="bm" class="B">
<result name="success" type="chain">
<param name="actionName">c</param>
</result>
</action>
<action name="c" class="C">
<result name="success">someview</result>
</action>
在Bview里提交到b2,再转到someview,这时值栈里只有三个对象,除了DefaultTextProvider外是B和C,A已经没有了。
也就是说action链是以request为生命周期的。当一个请求结束返回视图后,链的内容就固定了,也不会再保存了。当下一次请求开始时,链会重新生成。
分享到:
相关推荐
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、结构清晰的MVC(Model-View-Controller)架构的Web应用。它基于Apache软件基金会的Jakarta Struts项目,旨在提供比其前身Struts1更为灵活和功能...
### Struts2配置详解 #### 一、总览 在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...
### Struts 2完全学习手册知识点详解 #### Struts 2简介 Struts 2是Struts框架的一个重要分支,它继承了Struts 1.x的一些特性,并在此基础上进行了大幅度的改进与扩展,使之成为了一个更为强大、灵活的Web开发框架...
首先,关于`Action result`,它是Struts2中的一个关键概念,用于控制请求后的视图呈现。四种转发类型通常包括:`dispatcher`(默认),将请求分派到指定的JSP或Servlet;`redirect`,执行HTTP重定向,避免回发问题;...
### Struts2学习心得:深入理解Struts2框架的基本配置与初学者指南 #### Struts2框架概述 Struts2是Struts框架的升级版本,它继承了Struts1的优点并在此基础上进行了改进,提供了更丰富的功能和更好的性能。Struts...
Struts2 的架构图主要包括 Filter chain、ActionMapper、ActionProxy、ActionInvocation 和 Result 等组件。Filter chain 负责处理请求,Filter 主要包括 ActionContextCleanUp,它主要清理当前线程的 ActionContext...
### Struts2配置过滤器详解 #### 一、概述 Struts2是基于MVC模式的一个开源框架,它能够帮助开发者构建出结构清晰且易于维护的Web应用。在实际开发过程中,为了实现某些功能(例如用户认证、权限控制等),往往...
### Struts1与Struts2本质区别 #### 1....- **Struts 2**:通过拦截器链(Interceptor Chain)来控制Action的执行流程,使得开发者可以根据需要动态调整Action的执行顺序,增强了系统的灵活性和扩展性。
十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...
### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...
Struts2是一个非常著名的Java Web框架,它基于MVC(Model-View-Controller)设计模式,为开发人员提供了构建Web应用程序的强大工具。拦截器在Struts2中扮演着至关重要的角色,它们是AOP(面向切面编程)的一个实现,...
此外,Struts2允许Action通过拦截器链(Interceptor Chain)进行预处理和后处理,使得功能更加丰富和灵活。 #### 工作流程和请求处理 Struts1.x的工作流程较为固定,每个Action的执行都遵循一个预定的流程,从请求...
Struts2 框架是Java Web开发中的一个流行选择,它提供了一种优雅的方式来组织和控制MVC(模型-视图-控制器)应用程序。拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在...
### Struts2高级部分知识点详解 #### 一、Struts2框架高级概念解析 ##### 1. 异常处理机制 在Struts2框架中,异常处理是非常重要的一个环节,它能够帮助开发者有效地管理和捕获应用程序运行过程中可能出现的各种...
Struts2 Result 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....