xwork元素详解

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的执行

 

 

 

 

 

你可能感兴趣的:(详解)