跟着《Webwork in Action》学到了OGNL,一直对ValueStack的概念很模糊,而书里也没有介绍清楚,我一直以来连ValueStack里Action是在栈顶呢还是在哪里一层都不清楚,怎么把一个自定义的对上push到ValueStack上,如果在action的execute中push,他是在栈顶呢,还是次于Action呢?
其实在WW中,ValueStack的栈结构是这样的,在执行Action之前把Action压入栈,这时 Action就是栈顶,然后在Action.execute()时再把自定义的bean压入栈,那么这时这个自定义的bean就在栈顶了。所以在下面这样的JSP代码中,是先从自定义bean查起,然后才到Action。
<ww:property value="name" />
在ActionContext上下文中,默认是从OgnlValueStack去查找,因为这样,所以在在查找OgnlValueStack的值时是不用#来标明它所在的值栈。而像Session和Application这样的Map,则需要前缀,像这样:#session.xxx,#application.xxx。
至于怎么在ActionContext中添加类似于Session的Map,只有一个方法就是调用put方法。
讲得很粗略,不过内里已经了清楚了。
分享到:
相关推荐
**ValueStack使用参考** ValueStack是Struts2框架中的核心组件之一,它是ActionContext和...在线培训资料中可能包含了更多关于ValueStack的实际操作示例和深入讲解,建议仔细学习,以提升对Struts2的理解和应用能力。
【在线培训:ValueStack】是一场深入探讨Java...通过深入学习,开发者将能够熟练掌握栈数据结构的运用,理解Struts2框架中的ValueStack机制,并能灵活地调整和操作ValueStack,提高项目开发的效率和代码的可维护性。
关于ValueStack的描述: 1、 ValueStack其实就是一个放置Java对象的堆栈而已,唯一特别的是可以使用EL来获得值堆栈中对象属性的数据,并可以为值堆栈的对象属性赋值。 2、 EL,全称Express Language,即表达式...
深入讲解Struts中的ognl和valueStack
在给定的压缩包文件“s20505_valueStack_OGNL”中,我们关注的核心知识点是Struts2中的OGNL(Object-Graph Navigation Language)和相关标签的使用。OGNL是Struts2默认的表达式语言,用于在视图层和控制器层之间传递...
Struts2 值栈的理解 Struts2 值栈是 Struts2 框架中的一种核心机制,负责存储和管理 Action 中的数据。在 Struts2 中,每个 Action 类都有一个 ValueStack 对象,该对象贯穿整个 Action 的生命周期。在 Struts2 ...
在Struts中,OGNL(Object-Graph Navigation Language)和Value Stack(VS)是两个核心概念,它们对于理解Struts的工作原理至关重要。 **OGNL:对象图导航语言** OGNL是一种强大的表达式语言,它允许在对象图中进行...
### Struts2深入理解 #### 一、理解MVC思想 & Struts2中拓展的MVC思想 **1. 传统的MVC思想:** - **客户端向服务器发起请求(View):** 用户通过浏览器或其他客户端软件向服务器发送请求,请求可能包含用户希望...
深入理解Struts2的内核解析有助于我们更好地利用这个框架,提高开发效率并优化应用性能。 在用户发起一个URL请求时,Struts2容器开始执行一系列操作: 1. **过滤器Dispatcher**:Struts2的核心是`FilterDispatcher...
根据给定的信息,我们将深入探讨Struts2框架中的一些核心概念,包括OGNL表达式的使用、ValueStack的理解及其数据存取方法,以及拦截器的生命周期等。 ### OGNL表达式及其三要素 #### OGNL简介 OGNL(Object-Graph ...
在Struts中,ActionServlet作为控制器接收HTTP请求,根据配置的ActionMapping转发到相应的Action,Action处理完业务逻辑后,通过ValueStack与视图进行交互,最终展示结果。 2. Hibernate框架: Hibernate是一个对象...
这个压缩包包含了XWork 2.0 RC1版本的源代码,对于想要深入理解Struts2工作原理的开发者来说是一份宝贵的资源。 首先,我们需要知道XWork是如何与Struts2协同工作的。在Struts2中,Action是业务逻辑的载体,而XWork...
OGNL(Object-Graph Navigation Language)是一种基于 Java 的表达式语言,Struts2 框架中使用 OGNL 来访问和操作 ValueStack 中的对象。在 Struts2 中,OGNL 是一个强大的工具,允许开发者访问和操作 ValueStack 中...
1、什么是值栈 2、值栈的内部结构 3、ActionContext和ValueStatck的关系 4、如何获取值栈对象 5、向值栈存数据 6、从值栈中获取数据
5. **理解ValueStack的工作原理**:了解如何通过ValueStack将Action类的属性暴露给视图,以及如何使用OGNL表达式来访问复杂的属性路径。 6. **运行和测试**:启动服务器,访问应用,提交表单,观察Struts2如何处理...
Struts2是一个流行的Java web框架,它简化了MVC(模型-视图-控制器)架构的实现。...下面我们将深入探讨Struts2如何实现这一功能。...了解这一机制有助于我们更好地理解和利用Struts2框架,提高开发效率。
通过深入研究Struts的源码,我们可以更好地理解其内部的工作机制,从而提升我们在实际开发中的应用能力。 在Struts框架中,`Action`类是核心组件,它处理用户请求并负责业务逻辑的执行。每个Action对应一个特定的...
这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件ActionContext提供了对当前请求上下文的访问。在Action执行时,可以通过`ActionContext.getContext()`...
源码解析可以帮助理解`ValueStack`和`Ognl`的工作方式,它们是实现数据绑定的关键。Ognl(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象属性。 异常处理在Struts2中也得到了很好...