Struts2 的 值栈

1、ValueStack 对象的内部有2个逻辑部分:

  -- ObjectStack:Struts 把 Action 和相关对象亚茹ObjectStack中

  -- ContextMap:Sturts 把各种各样的映射关系(一些 Map 类型的对象)压入ContextMap中,实际上就是对ActionContext的一个引用

2、Struts 会把下面这些映射压入ContextMap中:

  -- parameters: 该Map中包含当前请求的请求参数;

  -- request: 该Map中包含当前request对象中的所有属性;

  --session: 该Map中包含当前session对象中的所有属性;

  --application: 该Map包含当前application对象的所有属性;

  --attribute: 该Map如下顺序检索某个属性,request、session、application

3、在Jsp页面上可以通过OGNL(Object-GraphNavigation Language 对象-图导航语言)来直接访问值栈(ValueStack)里的对象属性。若希望访问值栈中的ContextMap中的数据,需要在OGNL表达式加上前缀字符 # ,如果没有加上前缀字符 # ,搜索将在ObjectStack里进行。

  

时间: 2024-11-09 09:05:57

Struts2 的 值栈的相关文章

Struts2的值栈和对象栈

ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContext ValueStack与ActionContext的联系和区别: 如何获得ActionContext: 如何向ActionContext中存入值: 如何从ActionContext中读取值: HttpServletRequest类或request的Map 使用HttpServletRequest类

【struts2】值栈(后篇)

在值栈(前篇)我们学习了值栈的基本知识,接下来,来看看在程序中具体如何使用值栈. 1 ActionContext的基本使用 1.1 如何获取? 要获取ActionContext有两个基本的方法,如果在不能获取到ActionInvocation的地方,可以直接使用ActionContext一个静态的getContext方法,就可以访问到当前的ActionContext了,示例如下: ActionContext ctx = ActionContext.getContext(); 如果在能获取到Act

【struts2】值栈(前篇)

1 值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心. Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action.Result.Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写.Struts2中关于值栈的另外一个很激动人心的特性就是:大多数情况下,你根本无需关心值栈,你不用管它在哪里,不用管它里面有什么,你只需要去获取自己需要的数据就可以了.也就是说,你可以隐式的使用值栈.当然,

Struts2 之值栈

值栈(ValueStack) http://www.cnblogs.com/bgzyy/p/8639893.html 这是我的有关 struts2 的第一篇文章,对于里面我们说到的一个 struts2 HelloWorld 小练习,即在输入框输入信息提交后在另外一个页面显示输入的信息,显示页面的代码如下: UserName: ${userName}<br> Email: ${email}<br> Address: ${address}<br> 为什么这样一个简单的标签就

Struts2的值栈

一次对于action的request只有一个值栈,对于普通jsp页面的请求值栈为空. 对于result,在服务器端forward时(dispatcher,chain)时不需要使用参数从之前的值栈中拿出参数t再通过"?tparam=${t}"传递来实现动态结果集. 在客户端forward(redirect,redirectAction)时需要用以上方法传递参数,然后再在新的普通jsp页面或者action中同过"#paramenters.t"获得该参数.

关于Struts2的值栈和OGNL的简单理解

1.值栈是什么? 值栈是对应每一个请求对象的内存数据中心.每次请求一个action生成一个狭义上的值栈(ValueStack).这个值栈存储了我们定义在action中的每个属性的值,这些属性必须有get和set方法,以致于我们可以在jsp页面中使用EL表达式. 2.值栈的作用: 值栈能够在线程安全的情况下提供公共的数据存取服务.当有请求到达时,struts会为每个请求创建一个新的值栈.值栈封装了一次请求所有需要操作的相关的数据. 3.值栈的内容: 在struts中是有广义和狭义值栈之分的.狭义值

struts2值栈分析

前段日子对ognl表达式不是很理解,看了几本书上关于ognl表达式的描述后还是感觉很难,前几天学习了struts2中值栈的内容,现在感觉ognl表达式其实很容易. struts2中利用值栈来存储数据,在struts2中,把数据存在值栈中,然后在jsp页面用ognl表达式取出. 在struts2中的action有三种方法获取值栈 ValueStack valueStack=ActionContext.getContext().getValueStack(); ValueStack valueSta

走进Struts2(五)— 值栈和OGNL

值栈 1.值栈是什么? 简单说:就是对应每一个请求对象的轻量级的内存数据中心. Struts2引入值栈最大的好处就是:在大多数情况下,用户根本无须关心值栈,不管它在哪里,不用管它里面有什么,只需要去获取自己需要的数据就可以了. 2.值栈能干什么? 简单说:就是能够线程安全的为每一个请求提供公共的数据式服务. 3.值栈包含Map栈和对象栈,值栈通过ActionContext的getValueStack()方法来获取值栈,但是在通常情况下,向valuestack中压入值都是由Struts2去完成的,

ValueStack值栈和ActionContext

Struts2在OGNL之上提供的最大附加特性就是支持值栈(ValueStack),在OGNL上下文中只能有一个根对象,Struts2的值栈则允许存在许多虚拟对象. 一:值栈(ValueStack) 我们可以先获得ValueStack接口对象 // 01.获取到ValueStack接口对象 ,在request请求中. HttpServletRequest request = ServletActionContext.getRequest(); ValueStack vs = (ValueStac