我的问题是:
1)在Struts2中,每个操作对象都有自己的对应ActionContext
和ValueStack
吗?
换句话说,对于每个新请求,都会创建一个新的操作对象。这是否意味着每次创建新的操作对象时,都会创建新的ActionContext
和ValueStack
?
2)考虑这种情况:
Action1 ------ 1st req -------> view.jsp ------ 2nd req ---------> action2
因此,当针对action1发出请求时,将创建一个新的action1对象以及相应的ActionContext
和ValueStack
。
从view.jsp(点击超链接时)新请求转到action2。
这是否意味着先前的ActionContext
和ValueStack
(与action1相关)被销毁,并且会创建新的ActionContext
和ValueStack
(针对action2)?
3)假设我在view.jsp中的ActionContext
(action1)中存储了一些内容,然后单击action2的超链接(来自view.jsp),该数据将与ActionContext
( action1)迷路了?
感谢。
答案 0 :(得分:3)
为每个请求创建新的ActionContext
和ValueStack
。这通常意味着每个动作,但并不总是(在动作链接的情况下)。这些每请求对象在请求结束时超出范围。那时你存储的任何东西都会消失。