什么是值栈

------------------siwuxie095

什么是值栈

1、之前 Web 阶段,是在 Servlet 中把数据放到域对象,再在页面中

使用
EL 表达式获取数据

「域对象的主要作用:在一定范围内,存值和取值」

2、Struts2 本身也提供了一种存储机制,称之为 值栈(ValueStack)

(1)值栈类似于域对象,可以存值和取值

(2)在 Action 中把数据放到值栈,再在页面中获取值栈数据

3、Servlet 和 Action 的区别

(1)Servlet:默认在第一次访问时创建,且只创建一次,是单实例对象

(2)Action:访问时创建,且每次访问都会创建,创建多次,是多实例对象

4、值栈的存储位置

(1)每次访问 Action 时,都会创建 Action 对象

(2)在每个 Action 对象中都会有一个值栈对象(且只有一个)

【made by siwuxie095】

时间: 2024-12-17 10:44:29

什么是值栈的相关文章

Struts2 中的值栈的理解

通过对struts2的一段时间的接触,将自己对OGNL的核心值栈说说,值栈:简单的说,就是存放action的堆栈,当我们提交一个请求道服务器端 action时,就有个堆栈,如果action在服务器端进行跳转,所有action共用一个堆栈,当需要保存在action中的数据时,首先从栈顶开始 搜索,若找到相同的属性名(与要获得的数据的属性名相同)时,即将值取出,但这种情况可能出现找到的值不是我们想要的值,那么解决此问题需要用TOP语法 和N语法来进行解决. 当在客服端进行跳转时,当有请求提交到服务器

jsp页面通过使用s标签获取值栈中的值(初识)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitio

从值栈中获取数据

使用struts2的标签+ognl表达式获取值栈数据 <s:property value="ognl表达式"/> 一.获取字符串 示例 打印后台string变量的值 jsp页面 Java代码 二.获取对象 示例 打印user对象的userName与userPwd的值 jsp页面 java代码 三.获取list集合 Java代码 1.通过list[i]的方式获取 jsp页面 2.使用struts2标签获取<s:iterator> jsp页面 3..使用struts

Ognl表达式 值栈对象ValueStack

ValueStack值栈主要包含另个部分: 1.map栈(非根元素) context:主要存储域对象. 2.list栈(根元素) root:主要存储 (1)通过值栈的push()方法存放的对象 (2)Map对象(通过值栈的set()方法存放的数据) (3)Action对象 (4)其他代理对象. 测试类OgnlDemo2 <span style="font-size:14px;"><span style="font-family:Courier New;&qu

关于值栈

2). ValueStack: I.  可以从 ActionContext 中获取值栈对象II. 值栈分为两个逻辑部分 > Map 栈: 实际上是 OgnlContext 类型, 是个 Map, 也是对 ActionContext 的一个引用. 里边保存着各种 Map:             requestMap, sessionMap, applicationMap, parametersMap, attr                 > 对象栈: 实际上是 CompoundRoot

Struts2的值栈和对象栈

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

ValueStack值栈和ActionContext

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

值栈(Structs2)

1. 关于值栈: 1). 登陆 时, ${userName} 读取 userName 值, 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的. 2). ValueStack: I. 可以从 ActionContext 中获取值栈对象 //1. 获取值栈 ValueStack valueStack = ActionContext.getContext().getValueStack(); //2. 创建 Test 对象, 并为其属性赋值 Test object = new Te

Struts2学习记录-Value Stack(值栈)和OGNL表达式

只是学习记录,把我知道的都说出来 一,值栈的作用 记录处理当前请求的action的数据. 二,小例子 有两个action:Action1和Action2 Action1有两个属性:name和passwd Action2有两个属性:name2和passwd2 请求从Action1进入,chain方法导向Action2 Struts.xml配置信息: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE st

[转]Struts2数据传输的背后机制:ValueStack(值栈)

1. 数据传输背后机制:ValueStack(值栈) 在这一切的背后,是因为有了ValueStack(值栈)! 2. ValueStack基础:OGNL 要了解ValueStack,必须先理解OGNL(Object Graphic Navigatino Language)! OGNL是Struts2中使用的一种表达式语言,它可以: ①用于JSP的标签库中,以便能够方便的访问各种对象的属性: ②用于界面将参数传递到Action(并进行类型转换)中: ③用于struts2的配置文件中! 所以,非常有