day61_struts2_03.1:【值栈valueStack的理解】-超容易忘!-就这样记住
来源:互联网 发布:中国房地产 知乎。 编辑:程序博客网 时间:2024/06/16 04:34
public class ActionDemo4 extends ActionSupport{@Overridepublic String execute() throws Exception {//===【对值栈的理解】ValueStack vs = ActionContext.getContext().getValueStack();//①==######=【拿到的是Root区(list)】---set(k,v)操作的也就是Toot(list)区。Map<String, Object> map = vs.getContext();//②==######=【拿到的是Context区(map)】;//###【Map区有一个List区的引用(可以看作map区包含了list区)】。//######===狭义的值栈:List区。===广义的值栈:List区+Map区。vs.set("key1", "aaa");vs.set("key2", "bbb");/*// 底层创建一个map集合, 将set的key和value给map集合, map集合放在root的底层list中(Root区)。// 页面:<s:debug /><!-- 获取值栈中(root区)的数据 --><s:property value="key1"/>-------><s:property value="key2"/>===页面取值成功。查看debug 值栈信息,可见root区,栈顶多了一个map对象。 ===map ====<s:property value="key1"/>标签 底层就是:通过表达式的key,传给valueStack.findValue("key"),找到value显示。API:vs.findValue(expr)*/return SUCCESS;}}
①===结构-存储内容 理解:
###### 值栈 就是一个 存储数据的对象:一个大Map 。总体是个Map(常说的Context区(map)),Context区里又包含 Root区(List对象)的引用。
------只不过 通常会把 List区拿出来,单独说明。因为它的特殊之处:访问后创建的action对象 放在Root区(源码就是这样的)。
------每个区存的什么数据:牢记(源码就是这样的)。
######【Root区(list)存的是: action对象;Context区(map)存的是: request、attr等域对象(引用)、List区(引用)】
②====对比(作用)理解:
值栈valuestack 和 Ognl表达式的关系是?
就像 request等域对象 和 EL表达式 的关系。===都是 页面表达式 访问 存储数据的对象 ,在页面显示。
==================================
拓展:
获取valueStack方式二:request:核心filter-->ExecuteOperation类-->Dispatcher类-->servletActionContext类 这是源码过程。
阅读全文
0 0
- day61_struts2_03.1:【值栈valueStack的理解】-超容易忘!-就这样记住
- day61_struts2_03.2:【值栈valueStack的笔记+代码】
- android viewpager+fragment做主界面(超容易理解的demo!)
- 一篇超容易让人理解的KMP算法文章
- struts2 ValueStack的理解
- StackContext、ValueStack、ActionContext的理解
- (转)Struts2 ValueStack的理解
- 也许,这样理解HTTPS更容易
- 也许,这样理解HTTPS更容易
- 也许这样理解 HTTPS 更容易
- 也许,这样理解HTTPS更容易
- 也许,这样理解HTTPS更容易
- 也许,这样理解HTTPS更容易
- 也许这样理解 HTTPS 更容易
- 也许这样理解 HTTPS 更容易
- 也许这样理解 HTTPS 更容易
- ValueStack 理解
- UVA10300(理解题意就容易切)
- ---线上版本----php5.2.17---mysql5.55----nginx1.12.1编译安装
- “米录”讨论总结(四)
- 求出0~999之间的所有“水仙花数”并输出
- Http常见的请求参数
- Win7下安装docker
- day61_struts2_03.1:【值栈valueStack的理解】-超容易忘!-就这样记住
- lucene开发必备工具luke介绍
- java 并发线程安全 资料链接
- App实现自动更新
- 详解:YOLO-darknet训练自己的数据
- Springboot整合JPA以及动态条件查询的实现
- redis开机自动启动服务设置
- 算法:五步教你消除递归
- WEB大牛的博客