Struts2 ActionContext and ValueStack?

自古美人都是妖i 提交于 2019-12-01 08:31:47
MohanaRao SV
  1. Yes
  2. Yes after action execution clean up will be done.

    //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.Yes, If you want that data available in the next action use chain(not suggestible).

Q1. There is one ActionContext and there is only one ValueStack.

Q2.

Does this mean that previous ActionContext and ValueStack (related to action1) gets destroyed and a new ActionContext and ValueStack (for action2) gets created?

No.

Q3. I don't understand this question. What I think is missing is awareness of ThreadLocal so although there is one ActionContext each thread is able to have its own variables which are local to that thread and thus action scope for the ValueStack is maintained this way.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!