Struts2中ActionMapper、ActionProxy、ActionInvocation和ActionContext对象的作用域?
有谁能描述一下ActionMapper、ActionProxy、ActionInvocation和ActionContext的对象是在Struts2应用程序中创建的。由于我是Struts2框架的新手,我对这些对象的作用域非常困惑。是在启动时创建的,它有一个单例作用域 是由在准备要执行的操作时创建的,它是,并且没有任何作用域 当操作正在执行时,创建的和也没有作用域Struts2中ActionMapper、ActionProxy、ActionInvocation和ActionContext对象的作用域?,struts2,scope,actioncontext,Struts2,Scope,Actioncontext,有谁能描述一下ActionMapper、ActionProxy、ActionInvocation和ActionContext的对象是在Struts2应用程序中创建的。由于我是Struts2框架的新手,我对这些对象的作用域非常困惑。是在启动时创建的,它有一个单例作用域 是由在准备要执行的操作时创建的,它是,并且没有任何作用域 当操作正在执行时,创建的和也没有作用域 您可以在Struts2体系结构上看到这一点。感谢Roman提供了这一信息,但我知道ActionContext包含表示会话的映射对象,在
您可以在Struts2体系结构上看到这一点。感谢Roman提供了这一信息,但我知道ActionContext包含表示会话的映射对象,在其他请求中可以访问的应用程序范围的对象意味着其他线程。如果ActionContext是ThreadLocal,那么我们如何访问其他线程中包含的ActionContext对象?通过创建和初始化一个新的ActionContext。如果我们创建另一个,那么ActionContext的旧内容将被销毁。那么,在新请求中,如何仍然能够访问包含先前ActionContext对象的会话呢?@user2485767,因为会话是在action context上设置的。会话只是servlet规范会话。在其他线程中它不会破坏,但是正如Dave在这里提到的,谢谢Dave,在使用它之前,您需要将会话设置为action context。http会话中有相同的会话对象,因此可以使用ServletAPI轻松访问它们。