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)了解更多。