Recientemente encontré un problema en el que necesito pasar un grupo de objetos en el proyecto. En el pasado, solo he encontrado casos en los que se pasó un objeto, múltiples objetos o un conjunto de matrices. Es raro ver si se pasa un grupo de objetos. Por lo tanto, se siente un poco complicado cuando te encuentras con este problema. Pensé que sería posible resolverlo de esta manera.
@RequestMapping ("Save1") public void save1 (plan plan, lista <sanitem> planitems, respuesta httpservletResponse) {// toDo más ... addMessage (respuesta, mensaje_type_success, null, message_success);}Pero luego descubrí que era demasiado estúpido e ingenuo. Este método no puede unir los parámetros en absoluto. Algunas personas dicen que la primavera debe sacrificar parte de su rendimiento en comparación con los puntales. Pero no tengo investigación sobre primavera y puntales, solo lo uso como herramienta. Entonces, realmente no sé por qué. Volviendo lejos, de vuelta al tema. Hay otras soluciones en línea. Así es como
Lista de Personas de clase pública {Lista privada <OlPER> Persona; Lista pública <Olli> getPerson () {Return Person; } public void setperson (list <oman> persona) {this.person = persona; }} En el controlador:
@RequestMapping (valor = "xxx", método = requestmethod.post) public void test (Personlist Person) {// Transipate Person}} La página debe escribirse así:
<form de formato = "form" action = "test/test.do" método = "post"> <input type = "text" name = "persona [0] .Username" valor = "trabajos"/> <input type = "text" name = "persona [0] .age" valor = "55"/> <br/> <input type = "text" name = "persona [1] .username]" value = "jim"/> <inping type " name = "persona [1] .age" valor = "21"/> <br/> <input type = "enviar"> <form>
Pero probé este método, pero aún no funcionó. No sé si soy demasiado estúpido o por qué.
Después de muchos giros y vueltas, se encontró otra solución. Pase la cadena JSON del objeto de lista en el fondo. Después de que el fondo recibe los parámetros. Luego convierta JSON a objetar. El código frontal está exento, el código de fondo es el siguiente.
@RequestMapping ("Save") public void save (plan de plan, string planitemjson, httpservletResponse respuesta) {list <lanitem> parsearray = json.parsearray (planitemjson, planitem.class); // TODO lo que quieres addMessage (respuesta, mensaje_type_success, null, message_success);}Pero hay un pequeño problema con esto, es decir, la cadena JSON se agregará automáticamente con cotizaciones dobles en la sección clave en la sección anterior. Al decodificar en segundo plano, las citas dobles se escapan como ""; "Por lo tanto, también necesita convertir" ";" a cotizaciones dobles. Es decir, el código final es
@RequestMapping ("Save") public void save (plan de plan, string planitemjson, httpservletResponse respuesta) {planitemjson = planitemjson.replaceAll ("", "/" "); Lista <Slanitem> parsearray = json.parsearray (planitemjson, planitem.class); // adodo a lo que desea. Message_type_success, NULL, Message_Success);}Después de las pruebas, este método también funciona para objetos de lista y objetos de lista.
PD: Para mejorar la robustez del programa, puede verificar JSON después de escapar de los objetos JSON, lo que evita errores en JSON recurrir a los objetos Java.
O use un método más violento para realizar operaciones de prueba cuando JSON se convierta en la lista.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.