Red de conocimiento informático - Material del sitio web - Cómo pasar dos cadenas json a springmvc

Cómo pasar dos cadenas json a springmvc

Hay muchos datos en forma de página escrita, muchas entradas provienen de bucles y no existe una clase Pojo correspondiente para mapearlas.

En este caso, si no hay demasiados bucles, puedes crear un objeto Pojo tú mismo y luego vincularlo con la etiqueta de formulario SpringMVC.

Pero cuando el formulario es demasiado complejo, el código de esta manera se vuelve muy inflado. Entonces, los datos del formulario se empalman en una cadena json en la página de inicio y luego se pasan al controlador. El controlador los recibe en forma de cadena y luego los construye en un objeto json a través de una herramienta como fastjson, y luego. lo analiza.

La operación específica comienza a continuación.

1. Código de página de prueba

Escribe la página primero. Suponemos que la página tiene múltiples atributos de nombre y valor para completar, y se generan múltiples cuadros de entrada a través de un bucle foreach. El nombre de archivo de esta página es test.jsp.

ltform id = " formulario 1 " método = " post "

ltc: forEach items = " $ { list } " var = " aa " gt; p> ltinput nombre = " nombre $ { aa } "/ gt;

ltbr/>;

ltinput nombre = " valor $ { aa } "/ gt;

ltbr/>;

lt/c: forEach gt;

ltbutton type = "botón" id = "BTN" gt; lt/form gt;

2. Código del controlador de la página de prueba

El código del controlador correspondiente es:

@RequestMapping(value = "/test ")

Prueba de cadena pública(modelo modelo){

List lt string gtlist = new ArrayList lt string gt();

list add(" 1 "); /p>

lista . add(" 2 ");

model.addAttribute("lista ", lista

Devuelve "prueba"; p>}

Principalmente completa la generación de listas y las páginas de retorno. Entrada generada por bucle de página.

3. Envío del formulario

Para completar la conversión json y enviarlo en segundo plano, envíelo a través de Ajax.

$("#btn "). haga clic(función(){

var formData = $("#form1 ").

serializar matriz();

var d = { };

$.each(formData, function() {

d[this . nombre]= this . valor;

});

console.log(JSON.stringify(d))

$.ajax({

Tipo: "publicación",

URL: "/resultado de la prueba",

datos: "str=" JSON.stringify(d),

Tipo de datos : "json",

tipo de contenido: "aplicación/JSON; charset=UTF-8",

Éxito: función (datos) {

if ( amplificador de datos ampdata.success == "true") {

ubicación de la ventana href = vista de datos;

}de lo contrario {

alerta(" error. ");

}

}

});

})

})

4.4. El controlador recibe json

Se recibe en forma de cadena en el controlador y luego se convierte en JSONObject a través de herramientas como fastjson, y luego se selecciona el método get correspondiente de acuerdo. al tipo del valor.

@ResponseBody

@ mapeo de solicitud (valor = "resultado de la prueba", método =RequestMethod. Post)

Mapa público lt cadena, objeto gttestResult(char String str){

Mapa cadena lt, objeto gtmap = nueva cadena HashMap lt, objeto gt();

//Convierte cadena json en objeto json.

Objeto JSON Objeto JSON = Objeto JSON. parse object(str);

//Obtiene un valor del objeto json y selecciona el método get según el tipo del valor.

Objeto JSON . getstring(" ");

map.put("éxito ", " verdadero "); , " # ");

Volver al mapa

}