Struts 1.3.8 Listas!!!
Hola que tal chavos.
Aquí de nuevo solicitando consejos y/o sugerencias:
Les cuento, estoy utilizando struts y mi problema es el siguiente:
Lleno una lista de empleados desde un action de la siguiente forma:
Lo que quiero es modificar los datos de la lista y enviarla de nuevo a otro action para hacer la persistencia, el problema es que no llegan los datos, mi lista esta en null; en mi actionForm tengo esto para recibir el arreglo de empleados desde el JSP como sigue:
En mi Action tengo lo siguiente:
Simplemente se pasa a no existen datos, no entiendo porque??? es como si no se setearan los nuevos datos a la lista, existe alguna otra forma de enviar una lista a un action? Si alguien la sabe le agradecería que me dijera.
Gracias, saludos.
Falta metodo set con index
En el form debes tener una lista y dos métodos como estos;
donde Miembros es el tipo de objeto que almacena la lista. De esta forma, cuando se haga un submit se enviaran cada uno de los "registros" que corresponderán con un índice del arreglo.
??? matriz Miembros
Hola WinDoctor, gracias por tu respuesta.
De hecho ya tenia esos métodos en el action form como sigue:
pero me marca error diciendo: no existe un getter para listaMiembros, es como lo mostre??? o para los 2 métodos extra con el index deben llevar nombres diferentes???
Gracias...
Mira, yo no sé nada de nada
Mira, yo no sé nada de nada de Struts, pero al parecer el error está en que deberías de tener un
así sin parámetros, si lo vas a sobrecargar, pues no sé si te tire errores, pero de entrada, al parecer por convención se requiere usar un getter como debería, o sea, sin parámetros....
No recuerdo bien pero creo en
No recuerdo bien pero creo en el JSP debe ser algo asi
ó algo asi;
perdón por el scriptlet....
de preferencia pon otro nombre a los método que tienen el index y ese es el que debes poner en al construir en StringBuilder.
Otra forma es utilizando algo asi:
Con lo anterior no hace falta declarar los métodos con un parámetro index...
Aún sin éxito
Hola WinDoctor, estuve ocupado un buen ratito por eso no respondía, pero aquí estoy de nuevo.
Respecto a lo del JSP y los controles dinamicos ya lo intente de distintas formas, utilizé las que posteaste pero estoy como al principio, no logro que lleguen los datos al action. Mira te pongo lo que intenté.
JSP
FORM
ACTION
Cuando invoco al Action me direcciona al JSP en cuestión, como la lista esta vacía me pasa al "else" y me crea 2 registros, el Action me vuelve a direccionar al mismo JSP y los pinta, ahora que ya tengo esos registros los edito y vuelvo a invocar al Action, a la hora de obtener el tamaño de la lista, este es 0 por lo que me pasa al "else" y me crea los mismos registros, siendo que se modificaron desde el JSP.
Cabe mencionar que también probe de la siguiente manera:
JSP
FORM
En el Action es lo mismo, marca este error:
También probe esto solo en el JSP lo demas queda igual(FORM Y ACTION), solo le quite la propiedad indexed="true" a cada elemento
Me sale exactamente el mismo error de arriba.
Intente con este otro JSP, cambié la propiedad name por property dejando el valor anterior de name
Me sale este error:
La verdad ya no se que intentar, espero y me den algún consejo. De antemano Gracias... Saludos.
Tu ejemplo original solo
Tu ejemplo original solo requiere unos cuantos cambios:
- El id y la propiedad deben llamarse igual
- El name de los elementos internos debe ser igual al valor de property del iterate
- Se debe utilizar la propiedad "indexed" con valor "true"
Con esto el html generado será algo así
Mmmmm creo que NO!!!
Mmmmmm creo que no queda así Neko Pui.
JSP
FORM
ACTION
Me sale el siguiente error:
Cuando invoco al action la primera vez, se pasa al "else" lo cual pinta un registro en el JSP, al modificar éste e invocar de nuevo al action es cuando marca el error, parece que no se setea el registro en el ArrayList y al Iterarlo de nuevo en el JSP quiere tomar el primer elemento de la lista pero como la lista es de tamaño 0 por eso marca el error.
Espero sus comentarios y/o sugerencias chavos, Gracias!!!
Refiero al primer comentario
Faltan los métodos en tu form para recuperar el índice:
Con eso ahora sí debería funcionarte. Hace tiempo había un bug con Beanutils por el que no podías utilizar Listas, sino únicamente arreglos, pero me imagino que ese error ya no debe existir, así que con esos métodos adicionales todo debería funcionar.
Mmmmm ni con eso
Mmmmm ni con eso, de echo se me olvidó comentar que ya lo había probado de esa manera:
Con nombre de metodos para los index diferentes a los normales(solo le quite la "s").
Me da el siguiente error:
Con nombres iguales tanto para getters y setters(le deje la "s")
Me da el siguiente error al cargar de inicio el JSP
Espero sugerencias porfa, no se que sea :(.
Saludos!!!
Ya intentaste con arrays?
Recuerdo que había un error en java 1.4 con el que sucedía eso. Intenta utilizar arreglos en vez de listas a ver si te funciona. La otra solución, que era muy engorrosa por cierto, era utilizar DynaBeans. Prueba cambiarlos a Miembros[].
Si esto de plano no funciona... que Dios nos agarre confesados, jeje. Quiero decir, ya no puedo ayudarte mucho.
Ejemplo con lista que contiene listas
¡Solucionado!
el ejemplo lo hice con una lista de personas en donde cada una tiene un nombre y una lista de facturas y las facturas cada una tiene un valor y una cantidad
así