Struts2值栈

④Map栈

[1]似曾相识的Map栈对象

大家是否还记得,在获取Web资源时用到的ActionContext类中,有一个成员变量指向了一个Map,它的声明如下

private Map<String, Object> context;

而我们OgnlValueStack类中也有一个context成员变量指向了一个Map对象,声明如下

transient Map<String, Object> context;

他们指向的是同一个对象吗?我们可以比较一下

//1.从值栈对象中获取context对象

Map<String, Object> contextFromVS = valueStack.getContext();

//2.从ActionContext对象中获取context对象

Map<String, Object> contextFromAC = ActionContext.getContext().getContextMap();

//比较这两种方式获取的context对象,返回true

System.out.println(contextFromVS == contextFromAC);

通过程序验证我们发现,contextFromVS和contextFromAC指向同一块内存区域,证明他们指向的是同一个Map对象。它们之间的关系可以用下图表示:

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)