Interceptores Struts 2 Parte 1

Interceptores Struts 2 Parte 1

Aquí verá cómo los interceptores se invocan tanto antes como después de la ejecución de la acción y cómo los resultados se prestan al usuario. Vamos a entender esto con la ayuda del siguiente diagrama

Las siguientes acciones ocurren en una secuencia, cuando la solicitud llega a la Struts 2
la primera clase que se encuentra para invocar la acción de esta petición y descubre los interceptores, que están asociado con el mapeo de acción.
Ahora, el Framework crea una instancia de ActionInvocation y llama a su método invoke (). En este punto los marcos pasa el control al ActionInvocation para su posterior procesamiento de la solicitud.
ActionInvocation es la que encierra la acción y los interceptores asociados. ActionInvocation sabe en qué secuencia de los interceptores serán invocado.
ActionInvocation ahora invoca el método de intercept () del interceptor primero en la pila. Vamos a entender esto con la ayuda de un ejemplo.

Nuestro ejemplo es muy simple que usa sólo un interceptor para el registro de detalles.
El método de intercepción LoggingInterceptor () contiene el siguiente código.

public String intercept(ActionInvocation invocation) throws Exception {

    //Pre processing

    logMessage(invocation, START_MESSAGE);

    String result = invocation.invoke();

    //Post processing

    logMessage(invocation, FINISH_MESSAGE);

    return result;

    }

}

Como puede ver, en primer lugar el método logMessage () se llama y el mensaje se registra, este es el procesamiento previo realizado por el interceptor de registrador, entonces el
método invoke () de la ActionInvocation se volvió a llamar, esta vez el
ActionInvocation llamará a la intercetor siguiente en la pila y este ciclo continuará hasta que el interceptor llegue al último en la pila.

Después de la ejecución de todos los interceptores de la clase de acción será invocada. Finalmente, una cadena de resultado será devuelta y la vista correspondiente.

Este es el flujo normal de los acontecimientos.

Vamos a volver al flujo normal. En nuestro caso, el interceptor de registrador es el interceptor sólo en la pila, así que después de registrar la ”

START_MESSAGE “, el ActionInvocation del método invoke () se invoca la acción. Nuestra acción simplemente devuelve”éxito “, y de nuevo el interceptor registrador será invocado para hacer el post-procesamiento, esta vez el”FINISH_MESSAGE “se registra y se devuelve el resultado. Con base en el resultado de la vista correspondiente se representará para el usuario.

Tenemos los siguientes beneficios mediante el uso de los interceptores.

Extremadamente flexible.

Limpia y centra las clases Actión.

Proporciona la legibilidad del código y la reutilización de código.

Proceso de prueba se vuelve más fácil.

Podemos agregar sólo los interceptores que necesitamos para la pila y la personalización del tratamiento de las operaciones para cada solicitud.

Ahora vamos a ver el flujo del ejemplo. En la página index.jsp que remitirá la solicitud a la

URL “Prueba“.

<META
HTTP-EQUIV=“Refresh”
CONTENT=“0;URL=Prueba.action”>

La dirección URL Prueba se asigna a la clase PruebaAction en el archivo de struts.xml.

<!DOCTYPE struts
PUBLIC

“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”

http://struts.apache.org/dtds/struts-2.0.dtd&#8221;>

<struts>

    <package
name=“test”
extends=“struts-default”>

        <action
name=“Prueba”
class=“com.amalakaky.PruebaAction”>

            <interceptor-ref
name=“logger”
/>

            <result
name=“success”>/success.jsp</result>

        </action>

    </package>

</struts>

El elemento interceptor-ref
se utiliza para agregar una referencia a la acción del interceptor. Todos los interceptores se definen en el struts-default del paquete del archivo struts-default.xml.

Ahora bien, el método execute () de la clase PruebaAction será invocado. El método execute () sólo imprime una declaración y devuelve success.

package com.amalakaky;

public
class
PruebaAction {

    public String execute()

    {

        System.out.println(“En el interior del Actión”);

        return
“success”;

    }

}

Sobre la base de la asignación en el archivo de configuración XML que el usuario será redirigido a la página de éxito.

Los mensajes de registro siguientes se registran en la consola.

INFO: Starting execution stack for action //Prueba

En el interior de la Acción

Anuncios
Minientrada | Esta entrada fue publicada en Struts 2. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s