valueStack 是ActionContext的一个组成部分
ActionContext 所表现出来的是空间的概念,恰好成为数据载体进行存储的天然基石
ActionContext是XWork的数据流实现元素,作为一个数据载体,他既可以负责数据存储,又负责数据共享
ValueStack是一个具备表达式引擎计算能力的数据结构
XWork将ValueStack置于ActionContext中的目的在于为静态的数据添加动态计算的功能
ActionContext无法脱离ValueStack而单独存在,否则所有的数据载体就如一滩死水,失去流动性的数据流,只能称之为数据载体而非数据流
ValueStack无法脱离ActionContext而单独存在,否则ValueStack就 没有了数据计算的基础,失去了数据的数据流,只能称之为一个表达式计算工具而非数据流
事件处理节点和驱动元素
在XWork的控制流中,事件处理驱动元素对事件处理节点元素形成调用关系
主力部队和策应部队
在整个栈结构中,除了位于栈底的action以外,栈中的其他元素都是Interceptor对象
由于Action位于栈的底部,根据栈结构的 先进后出的特性,当试图把action对象拿出来的执行时,我们必须首先把Action之上的所有Interception依次拿出来执行
每个位于栈中的Interceptor,除了需要完成他自身的逻辑外,还需要指定下一步的执行对象
这里表现了
对应事件处理,能够进行进一步的规范化的流程细化
对于细化的流程,能够具备高度的可扩展性
流程细化后的事件处理节点之间表现出明显的执行层次
被封装的SessionMap等对象,能够进一步保证数据访问的线程安全性
保持所有存储对象的Map结构,可以统一数据访问方式
ValueStack是XWork对OGNL所做的重要扩展,使得在Struts2在使用ValueStack进行OGNL计算时,可以将一组对象都视为Root对象
ValueStack是一个被设计成 栈的数据结构,并且还是一个具备表达式引擎计算能力的数据结构
ValueStack是XWork框架进行OGNL计算的场所
ValueStack是XWork框架进行数据访问的基础
从栈的顶端开始对每个栈内元素进行表达式匹配计算,并返回第一个成功匹配的计算结果
ValueStack对OGNL的计算规则是栈内元素遍历 栈内元素遍历的结果是返回第一个满足OGNL表达式运算的结果值
一个大小为n的valueStack,除了自身外,有n-1个子栈
每一个子栈自身也是valueStack,相对ValueStack形成一个递归的数据结构
对于有状态的响应类,响应类的属性变量是描述自身状态的核心元素,也是响应方法进行逻辑处理的核心数据依赖
interceptor
切面aspect interceptor 实现
通知类型 advice 环绕通知 around通知
切入点pointcut action 对象
连接点joinpoint action的执行
分享到:
相关推荐
**XWork源码及打包资源详解** XWork是Apache Struts框架的核心组件,它提供了一套强大的动作(Action)框架,使得开发者能够构建基于MVC(Model-View-Controller)模式的Web应用。这个资源包包含了XWork项目的源...
《XWork核心库详解——基于xwork-core-2.2.1.1.zip》 XWork,作为Struts2框架的重要组成部分,为Java Web开发提供了强大的动作调度和业务逻辑处理能力。本文将深入探讨xwork-core-2.2.1.1.zip这个压缩包中的核心...
《XWork核心包详解》 XWork,作为一个关键的开源框架组件,是许多Java企业级应用开发中的重要一环。其版本2.2.3.1是我们关注的焦点,这个核心包(xwork-core-2.2.3.1.jar)承载了XWork的核心功能,为开发者提供了...
#### 二、XWork的配置文件详解 XWork 的核心配置文件通常为 `xwork.xml`,该文件是 XWork 运行的核心,包含了所有动作、拦截器以及结果类型的配置信息。 ##### 1. 动作(Action) 动作是 XWork 处理用户请求的...
### XWork与Struts2学习知识点详解 #### 一、XWork概述 XWork是一个用于构建Web应用程序的轻量级框架。它最初是为Apache Struts2项目开发的核心组件之一,但后来发展成为一个独立的框架。XWork的核心功能包括:处理...
3. **DOM操作:** Ajax获取数据后,通过修改DOM(Document Object Model)结构来更新页面内容,如创建新的HTML元素、改变现有元素属性等。 4. **局部刷新:** Ajax使得只更新页面的部分区域成为可能,提高了用户...
2. 编写JSP页面,包含表单元素,用于用户输入数字并提交。 3. 在Struts2的配置文件,通常是`struts.xml`中,定义Action及其结果页面。 Struts2的配置文件比Struts1.x的struts-config.xml简洁许多,我们可以直接在...
在“Struts2应用开发详解06”这一主题中,我们将深入探讨Struts2中的自定义方法以及相关的开发建议。 自定义方法在Struts2中扮演着至关重要的角色,它们允许开发者扩展框架的功能,以满足特定项目的需求。自定义...
在`struts.xml`中,我们经常看到`<package>`元素,它是Struts2配置的基本单元。每个`<package>`可以包含Action、拦截器、结果和其他配置。`<package>`可以通过继承其他包来复用配置,这使得配置更加模块化和可维护。...
import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class UserAction extends ActionSupport { public String add() { return SUCCESS; } public String delete() { ...
这涉及到创建一个继承自`com.opensymphony.xwork2.util.ValueStackAware`接口的类,并在其中定义解析和执行逻辑。 5. **JQuery与DOM转换** 在Structs2中,JQuery是一个常用的JavaScript库,用于处理DOM操作和AJAX...
《jQuery实现Div层排序的八种拖拽效果详解》 在网页开发中,动态交互功能是提升用户体验的重要手段,而Div层的拖拽排序就是其中之一。jQuery作为一个强大的JavaScript库,提供了丰富的API和插件,使得实现Div拖拽...
- **常见标签**:包括`<s:textfield>`、`<s:select>`、`<s:checkbox>`等,用于表单元素的快速生成和数据绑定。 ##### 3.4 国际化支持 - **多语言**:通过配置文件(`struts.properties`)和资源文件(`*.properties`)...
**S2SH框架配置详解** S2SH框架是基于Java的Web开发框架,由Struts、Spring和Hibernate三个开源框架组合而成。这个框架为开发者提供了一种高效且灵活的开发方式,尤其对于初学者,理解并掌握S2SH的配置至关重要。...
例如,一个Action可能需要处理一个包含多个元素的数组或集合。默认情况下,Struts2会尝试自动匹配并应用适当的`Converter`。如果默认的转换器不能满足需求,开发者可以自定义`Converter`并注册到`ConversionService`...
深入理解xwork.xml的标签元素对于合理配置和优化WebWork应用至关重要。 #### 七、WebWork与开源项目集成 WebWork的灵活性使其能够与其他多种开源项目无缝集成,例如Spring、Hibernate和Xml-RPC等。这些集成不仅...
这个类通常需要继承自`org.struts2.interceptor.StackAwareActionSupport`或`com.opensymphony.xwork2.ActionSupport`,并覆盖`execute()`方法来处理业务逻辑。 `method`属性可选,用于指定Action类中要执行的具体...
你可以在这里定义包、Action、结果和其他配置元素。例如,创建一个简单的Action: ```xml <result name="success">/HelloWorld.jsp ``` 步骤5 - 编写Action类 在src目录下,创建一个名为HelloWorldAction的...
深入理解xwork.xml的结构和元素,对于合理配置和优化WebWork应用具有重要意义。通过细致的配置,开发者能够定制WebWork的行为,如选择不同的ResultType来决定Action执行后返回的视图类型,或是通过自定义拦截器来...