La Red de Conocimientos Pedagógicos - Currículum vitae - JSP utiliza soporte JSON Ajax en Struts 2

JSP utiliza soporte JSON Ajax en Struts 2

El complemento JSON proporciona un tipo de resultado llamado json. Una vez que se especifica un resultado de tipo json para una acción, no es necesario asignar el resultado a ningún recurso de vista. Porque el complemento JSON será responsable de serializar la información de estado en la Acción en datos en formato JSON y devolver los datos al JavaScript de la página del cliente.

En pocas palabras, el complemento JSON nos permite llamar a la Acción de forma asincrónica en JavaScript, y la Acción ya no necesita usar recursos de visualización para mostrar la información de estado en la Acción. En su lugar, el complemento JSON. es responsable de convertir el estado en la Acción. La información se devuelve a la página de llamada; de esta manera, se puede completar la interacción Ajax.

Struts2 proporciona una forma conectable de administrar complementos. Instalar el complemento JSON de Struts2 no es muy diferente de instalar un complemento normal. Solo necesita copiar el archivo JAR del complemento Struts2. -Ingrese a la aplicación web. Simplemente vaya a la ruta WEB-INF/lib.

Para instalar el complemento JSON, siga los siguientes pasos:

(1) Iniciar sesión

(2) Copie el jsonplugin-0.7.jar descargado archivo a la aplicación web En la ruta WEB-INF, se puede completar la instalación del complemento JSON.

Implementación de la lógica de Actio

Supongamos que la página de entrada wo, en contiene tres campos de formulario. Estos tres campos de formulario tienen tres parámetros de solicitud, por lo que se debe utilizar Action para encapsular estos tres parámetros de solicitud. . Los nombres de los tres campos del formulario son campo1, campo2 y campo3 respectivamente.

El código de la clase Acción para manejar la solicitud es el siguiente:

clase pública JSONExample

{

//Encapsula los tres atributos de los parámetros de solicitud

campo de cadena privado1;

campo de cadena transitorio privado2;

campo de cadena privado3;

//Atributos que encapsulan resultados del procesamiento

p>

private int[] ints = {10, 20};

private Map map = new HashMap();

private String customName = "custom";

p>

//Los métodos setter y getter correspondientes a los tres parámetros de solicitud

public String getField1()

{

return field1;

}

public void setField1(String field1)

{

esto .field1 = campo1;

}

//Los métodos setter y getter de campo1 y campo2 se omiten aquí

...

// Los definidores y captadores de las propiedades que encapsulan los resultados del procesamiento. Método

public int[] getInts()

{

return ints;

}

public void setInts(int[] ints)

{

this.ints = ints;

}

Mapa público getMap()

{

devolver mapa;

}

setMap público vacío ( Mapa mapa)

{

this.map = map;

}

//Utilice la sintaxis de anotación para cambiar el nombre de la propiedad después serialización

@JSON(name ="newName")

cadena pública getCustomName()

{

return this.customName;

}

cadena pública ejecutar()

{

map.put("nombre", "yeeku");

return Action.SUCCESS;

}

}

En el código anterior, se utilizan comentarios JSON. El campo de nombre se especifica al comentar. El campo de nombre especifica que el atributo Acción se serializa en el nombre del atributo del objeto JSON. Además, las anotaciones JSON también admiten los siguientes campos:

serializar: establezca si se serializará este atributo

deserializar: establezca si se deserializará este atributo.

formato: establece el formato utilizado para dar formato a la salida y analizar los campos del formulario de fecha. Por ejemplo "aaaa-MM-dd'T'HH:mm:ss".

Existe una pequeña diferencia entre configurar esta Acción y configurar una Acción normal. Se debe configurar un Resultado de tipo json para esta Acción.

Este resultado no necesita configurar ningún recurso de vista.

El código del archivo struts.xml para configurar la Acción es el siguiente:

"-//Apache Software Foundation//DTD Configuración de Struts 2.0 //ES"

"">

<tipo de resultado="json"/>

</acción>

</paquete>

</struts>

Hay dos cosas que vale la pena señalar en el archivo de configuración anterior:

El primer lugar es que al configurar la constante struts.i18n.encoding, ya no se usa la codificación GBK, sino la codificación UTF-8. Esto se debe a que las solicitudes POST de Ajax están codificadas en UTF-8.

El segundo lugar es que al configurar el paquete, su propio paquete hereda el paquete json-default en lugar del paquete predeterminado predeterminado. Esto se debe a que solo debajo de este paquete puede haber un resultado de tipo json.