博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2中的值栈对象ValueStack
阅读量:5942 次
发布时间:2019-06-19

本文共 2697 字,大约阅读时间需要 8 分钟。

ValueStack, 即值栈对象。

值栈对象:

         是整个struts数据存储的核心,或者叫中转站。

         用户每次访问struts的action,都会创建一个Action对象、值栈对象、ActionContext对象;  然后把Action对象放入值栈中; 最后再把值栈对象放入request中,传入jsp页面。

(key: struts.valueStack);     开发者只需要通过ActionContext对象就可以访问struts的其他的关键对象。 (ActionContext是给开发者用的,便于学习与使用。)

 

一。获取值栈对象的两种方式:

// 获取值栈对象,方式1:        HttpServletRequest request = ServletActionContext.getRequest();        ValueStack vs1 = (ValueStack) request.getAttribute("struts.valueStack");                // 获取值栈对象,方式2:         ActionContext ac = ActionContext.getContext();        ValueStack vs2 = ac.getValueStack();                System.out.println(vs1 == vs2);//true

 

二。值栈对象的存储数据的原理

ValueStack vs = ac.getValueStack();        /***************操作根元素的几种方法*****************/        // 设置数据: 入栈        //vs.push(new User(1002,"Tom"));    // 栈顶        //vs.pop();                        // 移除栈顶元素                // 如何存储?  map结构存储          //vs.set("user1", new User(1,"Jacky1"));        //vs.set("user2", new User(2,"Jacky2"));

 

public class OgnlDemo3 extends ActionSupport{            @Override    public String execute() throws Exception {                // 测试迭代标签                List
list = new ArrayList
(); Map
map = new HashMap
(); // 初始化 for (int i=1; i<11; i++) { User user = new User(i,"Jack" + i); list.add(user); map.put(user.getId(), user); } // 保存到request中,是非根数据 取值时候要加# ActionContext.getContext().getContextMap().put("list", list); ActionContext.getContext().getContextMap().put("map", map); return super.execute(); } }

 

    
一、. list迭代
>
编号 名称
二、迭代map
编号 名称

 

    
一、.构建 list集合
一、.构建 map集合

 

      
1. 取根元素的值
2. 取非根元素的值

转载于:https://www.cnblogs.com/xtdxs/p/6527372.html

你可能感兴趣的文章
我是怎么使用最短路径算法解决动态联动问题的
查看>>
sublime Text 2 配置以及 Python环境搭建
查看>>
[2778]小明的花费预算 (二分查找)SDUT
查看>>
Runnable接口介绍(中文文档)
查看>>
URAL 1353 Milliard Vasya's Function DP
查看>>
速读《构建之法:现代软件工程》提问
查看>>
在iOS微信浏览器中自动播放HTML5 audio(音乐)的2种正确方式
查看>>
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
Matlab2012a下配置LibSVM—3.18
查看>>
SpringBoot 搭建
查看>>
中信国健临床通讯2011年7月期目录
查看>>
iOS开发之设计模式篇
查看>>
电信运营商 IT 系统介绍
查看>>
简单粗暴的“Debug模式”
查看>>
汇编实验一
查看>>
Python 面试总结
查看>>
ansible register when: result | succeeded when: item.rc != 0
查看>>
有赞MySQL自动化运维之路—ZanDB
查看>>
ssm中shiro的使用
查看>>
10个操作数的随机四则运算(二)
查看>>