java java-ee struts2 actioncontext

java - ¿Cuál es la diferencia entre actioncontext y actionInvocation struts2?



java-ee (2)

Tengo una pequeña confusión con respecto a ActionContext y ActionInvocation. Sé que el Contexto de Acción es el contexto donde se está ejecutando la Acción. ¿ActionInvocation se encuentra dentro de ActionContext como Session, Value Stack, etc.? En segundo lugar, ¿se crea ActionContext en cada solicitud de usuario ya que es única por hilo? Si es así, ¿es demasiado costoso crear cada vez un nuevo contexto de acción en cada solicitud de usuario?


Como tiene una idea sobre ActionContext como contexto en el que se está ejecutando una Acción y para la ejecución de Action, también necesitamos la Invocación. Es una parte de ActionContext y tienes todo el camino para obtener ActionInvocation del contexto por

public ActionInvocation getActionInvocation()

Los contextos usan ThreadLocals, lo que significa que los valores almacenados en ActionContext son únicos por hilo. Bueno, para mí esto no es una sobrecarga, ya que en otro caso debes asegurarte de que todo lo que se accede en la aplicación multiproceso es Thread safe. Se creará un nuevo ActionContext para cada solicitud.


Diferencia entre Struts 2 ActionContex y Action Invocation

ActionContext es un contenedor de objetos en el que se ejecuta la acción. Los valores almacenados en ActionContext son únicos por hilo (es decir, ThreadLocal). Entonces no necesitamos hacer que nuestro hilo de acción sea seguro.

Podemos obtener la referencia de ActionContext llamando al método getContext () de la clase ActionContext. Es un método de fábrica estático. Por ejemplo: ActionContext context = ActionContext.getContext ();

Invocatioin de la acción: -

ActionInvocation representa el estado de ejecución de una acción. Tiene los objetos de acción e interceptores.

El marco de struts proporciona la interfaz ActionInvocation para tratar con ActionInvocation. Proporciona muchos métodos, algunos de ellos se pueden utilizar para obtener la instancia de ValueStack, ActionProxy, ActionContext, Result etc. Métodos de acciónInterfaz de invocación Los métodos más utilizados de la interfaz ActionInvocation son los siguientes:

1) public ActionContext getInvocationContext () devuelve el objeto ActionContext asociado con ActionInvocation.

2) public ActionProxy getProxy () devuelve la instancia de ActionProxy que contiene esta ActionInvocation.

3) public ValueStack getStack () devuelve la instancia de ValueStack.

4) public Action getAction () devuelve la instancia de Acción asociada con esta ActionInvocation.

5) public void invoke () invoca el siguiente recurso en el procesamiento de esta ActionInvocation.

6) public Result getResult () devuelve la instancia de Result.