gpt4 book ai didi

Struts2 ActionContext 和 ValueStack?

转载 作者:行者123 更新时间:2023-12-02 17:03:16 24 4
gpt4 key购买 nike

我的问题是:

  1. 在Struts2中,每个action对象都有自己对应的ActionContext和ValueStack吗?

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

  • 考虑以下场景:
  • Action1------第一个请求------>view.jsp------第二个请求------>action2。

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

    从 view.jsp(单击超链接后),一个新请求将发送至 action2。

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

  • 假设我在 view.jsp 的 ActionContext(action1)中存储一些内容,然后单击 action2 的超链接(来自 view.jsp),该数据与 ActionContext(action1)会丢失吗?
  • 最佳答案

    1. 是的,执行操作后将完成清理工作。

      //SourceCode from StrutsPrepareAndExecuteFilter.

      //Cleans up a request of thread locals

      public void cleanupRequest(HttpServletRequest request) {

      Integer counterVal = (Integer) request.getAttribute(CLEANUP_RECURSION_COUNTER);
      if (counterVal != null) {
      counterVal -= 1;
      request.setAttribute(CLEANUP_RECURSION_COUNTER, counterVal);
      if (counterVal > 0 ) {
      if (log.isDebugEnabled()) {
      log.debug("skipping cleanup counter="+counterVal);
      }
      return;
      }
      }

      // always clean up the thread request, even if an action hasn't been executed
      ActionContext.setContext(null);
      Dispatcher.setInstance(null);
      }

    3.是的,如果您希望该数据在下一个操作中可用,请使用链(不建议)。

    关于Struts2 ActionContext 和 ValueStack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10296108/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com