Cómo pasar dos cadenas json a springmvc
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 ") p>
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
}