首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts2 ActionContext和ValueStack?

Struts2 ActionContext和ValueStack?
EN

Stack Overflow用户
提问于 2012-04-24 10:26:12
回答 2查看 5.4K关注 0票数 3

我的问题是:

  1. 在Struts2中,是否每个动作对象都有自己的ActionContext和ValueStack?

换句话说,对于每个新请求,都会创建一个新的操作对象。这是否意味着每次创建新的动作对象时,都会创建一个新的ActionContext和ValueStack?

  1. 考虑一下这种情况:

动作1

因此,当请求action1时,将创建一个新的action1对象以及相应的ActionContext和ValueStack。

从view.jsp (单击超链接)向action2发出一个新的请求。

这是否意味着先前的ActionContext和ValueStack (与action1相关)被销毁,并创建了一个新的ActionContext和ValueStack (用于action2)?

  1. 假设我在ActionContext (of action1)中存储view.jsp中的某个内容,然后单击action2超链接(来自view.jsp),该数据以及ActionContext (of action1)会丢失吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-24 11:00:48

  1. 是的,在行动执行之后,清理将完成。 // StrutsPrepareAndExecuteFilter的源代码。//清除线程局部变量的请求公共request.setAttribute(CLEANUP_RECURSION_COUNTER,cleanupRequest(HttpServletRequest请求){ Integer counterVal =(Integer counterVal = (counterVal != null) {counterVal -= 1;request.setAttribute(CLEANUP_RECURSION_COUNTER,counterVal);if (counterVal >0){ if (log.isDebugEnabled()) {log.debug(“跳过清理counter=”+反void );}返回;} //总是清理线程请求,即使没有执行ActionContext.setContext(null);Dispatcher.setInstance(null);}

3.是的,如果你想在下一个行动中获得这些数据,使用链(不受暗示)。

票数 1
EN

Stack Overflow用户

发布于 2012-04-24 10:53:59

Q1。只有一个ActionContext,只有一个ValueStack。

Q2。

这是否意味着先前的ActionContext和ValueStack (与action1相关)被销毁,并创建了一个新的ActionContext和ValueStack (用于action2)?

不是的。

Q3。我不明白这个问题。我认为缺少的是对ThreadLocal的认识,因此尽管每个线程都有一个ActionContext,但是每个线程都能够有自己的变量,这些变量是该线程的本地变量,因此ValueStack的操作范围是这样维护的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10296108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档