Struts2-向值栈中存放数据】的更多相关文章

1.第一种 获取值栈对象,调用值栈对象里面的set方法(该方法添加的是一个Map集合) //第一种方式,使用值栈对象获取对象里面的set方法 //1.获取值栈对象 ActionContext context = ActionContext.getContext(); ValueStack stack = context.getValueStack(); //2.调用方法set方法 stack.set("username","web"); 2.调用值栈对象里面的pus…
7. 问题七:为什么EL也能访问值栈中的数据? * StrutsPreparedAndExecuteFilter的doFilter代码中 request = prepare.wrapRequest(request); > 对Request对象进行了包装 ,StrutsRequestWrapper > 增强了request的 getAttribute Object attribute = super.getAttribute(s); if (attribute == null) { attrib…
用户提交一次请求的执行过程 总结: struts值栈中 两个内容 一个是栈 一个是map 值栈(数据中心)的范围是一个请求 它代替了request作用域 struts自定义标签有一个特点 比如遍历集合的时候 把每次循环得到的 对象 自动放在栈顶 此次循环结束之后 把它从栈顶拿掉(弹出) 下次循环到第二个对象 再把它放在栈顶 %{ognl}表达式 从栈顶找对应属性 找不到 去map中找对应的key的值 jsp页面中${}是el表达式 ognl表达式 在struts.xml中的格式为 ${} 在js…
5. 问题五: 向值栈保存数据 (主要针对root栈) > valueStack.push(Object obj); * push方法的底层调用root对象的push方法(把元素添加到0位置) > valueStack.set(String key, Object obj);set往里面存储map集合 * 源码获取map集合(map有可能是已经存在的,有可能是新创建的),把map集合push到栈顶,再把数据存入到map集合中. > 在jsp中 通过 <s:debug /> 查…
从值栈获取数据 1 使用struts2的标签+ognl表达式获取值栈数据 (1)<s:property value=”ognl表达式”/> 获取字符串…
值栈(重要)和ognl表达式 1.  只要是一个mvc框架,必须解决数据的存和取的问题 2.  Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3.  把数据存在值栈中,在页面上利用ognl表达式显示出来 讨论的问题 1.  讨论值栈的生命周期 2.  值栈的内存结构 3.  通过什么样的方法把数据放入到值栈中 4.  显示出来 值栈的内存结构 获取值栈的路径 说明: 1.  值是一样的,说明只有一个对象 2.  因为有一种是从request域中获取的,所以是一次请求 内存结构…
1. 问题一:什么是值栈? * 值栈就相当于Struts2框架的数据的中转站,向值栈存入一些数据.从值栈中获取到数据. * ValueStack 是 struts2 提供一个接口,实现类 OgnlValueStack ---- 值栈对象 (OGNL是从值栈中获取数据的 ) * Action是多例的,有一起请求,创建Action实例,创建一个ActionContext对象,代表的是Action的上下文对象,还会创建一个ValueStack对象. * 每个Action实例都有一个ValueStack…
ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContext ValueStack与ActionContext的联系和区别: 如何获得ActionContext: 如何向ActionContext中存入值: 如何从ActionContext中读取值: HttpServletRequest类或request的Map 使用HttpServletRequest类…
1 值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心. Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action.Result.Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写.Struts2中关于值栈的另外一个很激动人心的特性就是:大多数情况下,你根本无需关心值栈,你不用管它在哪里,不用管它里面有什么,你只需要去获取自己需要的数据就可以了.也就是说,你可以隐式的使用值栈.当然,…
1.ValueStack 和 ActionContext 的关系与区别: -- 相同点:它们都是在一次HTTP请求的范围内使用的,它们的生命周期都是一次请求 -- 不同点:ValueStack 分为对象栈(Object Stack) 和 Map栈(Map Context),而ActionContext就是一个映射的Map结构 --  联系 :  ValueStack.getContext()方法得到的Map 其实就是ActionContext 的Map.在查看Struts2的源代码可知(Stru…
值栈(ValueStack) http://www.cnblogs.com/bgzyy/p/8639893.html 这是我的有关 struts2 的第一篇文章,对于里面我们说到的一个 struts2 HelloWorld 小练习,即在输入框输入信息提交后在另外一个页面显示输入的信息,显示页面的代码如下: UserName: ${userName}<br> Email: ${email}<br> Address: ${address}<br> 为什么这样一个简单的标签就…
------------------siwuxie095 获取 set() 方法向值栈放的数据 1.具体步骤 (1)在 Action 中使用 set() 方法向值栈放数据 (2)在 JSP 页面中从值栈获取数据 2.具体实现 (1)编写 Action @Override public String execute() throws Exception { // (1) 获取值栈对象 ActionContext context=ActionContext.getContext(); ValueSt…
Struts2的值栈和OGNL牛逼啊 一 值栈简介: 值栈是对应每个请求对象的一套内存数据的封装,Struts2会给每个请求创建一个新的值栈,值栈能够线程安全的为每个请求提供公共的数据存取服务. 二 OGNL介绍: (1)基本数据: OGNL 是对象图导航语言 Object-GraphNavigationLanguage 的缩写,它是一种功能强大的表达式语言. OGNL 访问 ValueStack 数据 <s:propertyvalue=”account”/> OGNL 访问 ActionCo…
Struts2在初始化Action的时候会先向值栈中压入一个action对象,里面包含了各个属性,这些属性是怎么被压进去的?或者说是根据什么来压入的?直到2016年5月5日才理解,原来是在初始化action的时候,根据antion中定义的getter方法来向值栈中压属性的,而单纯的在action中定义的属性,但没有定义getter方法的属性并不会被压入到值栈中,例如,有一个Action叫做UserAction: class UserAction{ private String name; pri…
6. 问题六: 在JSP中获取值栈的数据 * 总结几个小问题: > 访问root中数据 不需要# > 访问context其它对象数据 加 # > 如果向root中存入对象的话,优先使用push方法. > 如果向root中存入集合的话,优先要使用set方法. * 在OgnlContext中获取数据 > 在Action中向域对象中存入值 > request:<s:property value="#request.username"/> >…
转自:csdn 封装对象User,属性有id,username,email等1.1:在action中将字符串保存到值栈中   1.1.1 获取值栈对象         ValueStack stack = ActionContext.getContext().getValueStack();   1.1.2 将字符串保存到值栈中         stack.set("username","leo");1.2:在jsp页面中获取值栈中的字符串   1.2.1 <…
在值栈(前篇)我们学习了值栈的基本知识,接下来,来看看在程序中具体如何使用值栈. 1 ActionContext的基本使用 1.1 如何获取? 要获取ActionContext有两个基本的方法,如果在不能获取到ActionInvocation的地方,可以直接使用ActionContext一个静态的getContext方法,就可以访问到当前的ActionContext了,示例如下: ActionContext ctx = ActionContext.getContext(); 如果在能获取到Act…
一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的时候对实现过程进行了封装,用起来比较方便. 3.实现过程 (1)在Action文件中定义好相关属性,属性名字和表单中的name属性值要相同. (2)在Action同目录下新建一个XML文件,文件命名规则如下 * 如果是针对整个Action文件的,则文件名为:ActionClassName-valid…
值栈 Value Stack 值栈是Struts2框架的核心概念.所有的核心组件都以某种方式与之进行交互,它提供对上下文信息和执行环境中元素的访问机制.值栈的内容由如下4个层级组成. 1.临时对象 这些对象在请求处理中需要临时保存,比如集合中当前正在被迭代的元素. 2.模型对象 当action实现了ModelDriven接口,模型对象就会被存放在栈中,在action对象前.如果action没有实现该接口,这个级别的内容将不存在. 3.Action对象 此对象是当前正在执行的action. 4.命…
这里的问题其实问的是对堆与栈的数据访问有什么不同. 观察如下代码: #include<stdio.h> #include<iostream> using namespace std; int main(){ int a; int *pb=(int*)malloc(sizeof(int)); a=; *pb=; ; } 在观察汇编的情况: 明显观察到,对栈数据赋值,直接将数据放到目标地址.而堆中的数据,先把pb的值放到寄存器中,再把值放到寄存器所指向的地址. 总结:对与堆内存的访问比…
public class CookieUtil { /** * * @param response HttpServletResponse类型的响应 * @param cookie 要设置httpOnly的cookie对象 */ public static void addHttpOnlyCookie(HttpServletResponse response, Cookie cookie) { // 判断对象是否存在null的情况 if (checkObjIsNull(response) ||…
/** * redis服务 */ @Autowired private RedisService redisService; //创建 Device  对象 Device no = new Device(); //设置属性 no.setDeviceNo("Ubibot1"); no.setCompanyId(10); no.setGroupId(1); // 创建异常设备集合 List<Device> deviceError = new ArrayList<Devic…
一 什么是值栈 值栈: struts2中提供的一种类似于域对象的工具, 用于struts2中的存值和取值. 每次访问Action的时候, 都会创建一个action对象, 而每个action对象中都存在一个值栈对象 值栈对象的声明周期与Action的生命周期(第一次访问action的时候被创建, 当action中方法返回值时被销毁)一致. 二 Action中值栈对象的获取方法 每个action只对应一个值栈对象. 值栈对象可以通过ActionContext对象中的方法获取. ActionConte…
一款软件,无在乎对数据的处理.而B/S软件,一般都是用户通过浏览器客户端输入数据,传递到服务器,服务器进行相关处理,然后返回到指定的页面,进行相关显示,完成相关功能.这篇博客重点简述一下Struts2框架是如何进行数据流转处理呢! 一,首先学习一种表达式:OGNL:Object-Graph NavigationLanguage(对象图形导航语言) 将多个对象的关系使用一种树形的结构展现出来,更像一个图形,那么如果需要对树形结构的节点数据进行操作,那么可以使用[对象.属性]的方式进行操作.    …
OGNL表示式使用 和 值栈 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的表达式语言. * xwork 提供 OGNL表达式 * ognl-3.0.5.jar OGNL 是一种比EL 强大很多倍的语言 OGNL 提供五大类功能 1.支持对象方法调用,如xxx.doSomeSpecial(): 2.支持类静态的方法调用和值访问 3.访问OGNL上下文(OGNL context)和…
大致内容: ognl概述 ognl入门 值栈 一.OGNL概述 OGNL,全称为Object-Graph Navigation Language,对象图导航语言 它是一个功能强大的表达式语言,用来获取和设置Java对象的属性, 它旨在提供一个更高的更抽象的层次来对Java对象图进行导航. struts2自带的表达式语言就是OGNL >支持对象方法调用 >支持类静态方法调用和值访问 >[主要用法]在struts2中操作值栈 和struts2标签一起使用来操作值栈 OGNL不是struts2…
获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getContext().put("req", "req_value"); //在session域中放入属性ses ActionContext.getContext().getSession().put("ses", "ses_value");…
1:简单的说,值栈是对应每一个请求对象的轻量级的数据存储中心,在这里统一管理着数据,供Action.Result.Interceptor等Struts2的其他部分使用,这样数据被集中管理起来而不凌乱. 简单的说,值栈能够线程安全的为每个请求提供公共的数据存取服务. 当有请求的时候,Struts2会为每个请求创建一个新的值栈,也就是说,栈和请求是一一对应的,不同的请求,值栈也不一样,而值栈封装了一次请求所有需要操作的相关的数据. 正是因为值栈和请求的对应关系,因此值栈能保证线程安全的为每个请求提供…
技术分析之OGNL表达式概述(了解)        1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写        * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象        * 通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性        2. Struts2框架使用OGNL作为默认的表达式语言 …
一.OGNL概述 1.1OGNL是对象图导航语言(Object-Graph Navigation Languaged)的缩写,他是一种功能强大的表达式语言,通过简单一致的表达式语法,可以存取Java对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型的转化功能.他使用相同的表达式去存取对象的属性.如果吧表达式看作一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与java对象之间沟通的桥梁. 1.2OGNL的要素 表达式:表达式是整个OGNL的核心,OGNL会根据表达式去对…