Struts2值栈
⑤总结
ValueStack对象与其他对象的关系可以概括为下面这个图
获取ValueStack对象的途经
通过上面对ValueStack对象数据结构的分析我们很容易得出获取ValueStack对象的两个较为直接的途经:
①通过ActionContext对象获取
ValueStack valueStack = ActionContext.getContext().getValueStack(); |
②通过读取请求域获取
ValueStack valueStack = (ValueStack) requestMap.get("struts.valueStack"); |
ValueStack对象和请求的关系
在Action类中打印ValueStack对象发现每一个ValueStack对象的HashCode值都不同,证明Struts2为每一个请求创建一个新的ValueStack对象。这就保证了读写值栈中数据的时候不会有线程安全的问题。
本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。