Foros del Web » Programación para mayores de 30 ;) » Java »

jsp + struts + listas

Estas en el tema de jsp + struts + listas en el foro de Java en Foros del Web. Hola gente, este es mi primer post (paciencia por favor!). Mi situacion es la siguiente: Tengo una pagina jsp la cual tiene un form. Este ...
  #1 (permalink)  
Antiguo 16/01/2009, 12:50
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
jsp + struts + listas

Hola gente, este es mi primer post (paciencia por favor!).

Mi situacion es la siguiente:

Tengo una pagina jsp la cual tiene un form. Este form tiene, entre otros properties, una select que lista varias opciones.

Código:
<html:select size="3" property="cosa">
<html:optionsCollection property="cosas" value="value" label="label"/>
</html:select>
Los objetos de la lista son cargados mediante struts correctamente. Esta lista puede ser editada por el usuario, agregando o eliminando opciones de la misma.
Hasta aca todo va bien.

Lo que necesito es saber como puedo pasar esta lista de objectos a la clase XXXAction cuando hago el submit del form.

Tengo una property "cosas" en la clase XXXForm que es una ArrayList. Pero cuando hago el submit, esta propiedad me viene siempre null en el form.

Como dije antes, tengo otros properties en la pagina pero son simplementes textos. Con estos no tengo problema, siempre me llega su contenido en las properties del form sin problemas.

Supongo que el problema esta en el codigo que ingrese antes o en la forma de definir la property en el form.

Gracias por cualquier ayuda.
  #2 (permalink)  
Antiguo 17/01/2009, 11:43
 
Fecha de Ingreso: marzo-2007
Mensajes: 80
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: jsp + struts + listas

Hola.

Creo que la propiedad que recivirias en tu form es "cosa", no "cosas", ya que la coleccion son las cosas y la variable que le asignas a tu select es cosa, ademas un combobox solo regresa un objeto, no multiples.

Saludos.
  #3 (permalink)  
Antiguo 19/01/2009, 05:06
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: jsp + struts + listas

Gracias sxceron por responder.

Cuando debugueo, el form tiene las properties cosa y cosas. Cosa tiene un valor y cosas es null.
Mi intension es recibir una coleccion de objetos cosa en cosas.
En el codigo que puse, tiene un "size="3"", supongo que esto convierte al combo box en un list box, verdad? estoy equivocado? si me equivoco, como creo un list box?

Entonces mi intension es que esa lista de objetos cosa que recibo, sea la misma lista que esta en el list box anterior. Como hago esto?

Espero que se entienda.

Gracias!
  #4 (permalink)  
Antiguo 19/01/2009, 10:35
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: jsp + struts + listas

Hola,

Porque no declaras tu property "cosas" de clase XXXForm de tipo String [] y NO de tipo ArrayList, ya con eso si seleccionas una o mas opciones de tu lista del jsp, el atributo "cosas" no te llegara vacio.

saludos!
  #5 (permalink)  
Antiguo 19/01/2009, 12:33
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: jsp + struts + listas

Gracias por la sugerencia Bunburyscom.

Creo haber hecho lo que propusiste, pero tampoco me funciono.

Directamente no me carga la lista que le paso al iniciar la pagina. La lista queda vacia y deja de cargar la pagina.
Entra y sale del getCosas sin problemas.

Estos son el set y get de cosas:

Código:
	public String[] getCosas() {
		if (cosas==null){
			cosas= new String[2];
			cosas[0]="hola";
			cosas[1]="chau";
		}
		return servicios;
	}

	public void setCosas(String[] cosas) {
		this.cosas = cosas;
	}
Sigo recibiendo sugerencias...
  #6 (permalink)  
Antiguo 19/01/2009, 16:07
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: jsp + struts + listas

En tu metodo getCosas() tienes return servicios, no deberia de ser return cosas ??
  #7 (permalink)  
Antiguo 20/01/2009, 05:08
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: jsp + struts + listas

Es verdad, deberia ser cosas...igualmente no funciona.
  #8 (permalink)  
Antiguo 20/01/2009, 05:41
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: jsp + struts + listas

Creo que estás confundiendo un poco lo que hace un select.

Cuando tienes un select en un formulario (independientemente de Struts, es una cosa general), el formulario sólo va a enviar la(s) opción(es) que tengas seleccionadas. El resto no se envía.

Y es lógico. Imagina que tienes un select para elegir el país. No necesitas que el formulario vuelva a enviar los 200 países que se pueden elegir; sólo necesitas el que realmente se ha elegido.


Así que no, la lista con la que rellenas el select NO se va a enviar de nuevo al Action.



Y no sé por qué querrías que se te volviera a enviar toda la lista (porque si la generaste en el servidor, pues en el servidor la podrás volver a generar, no?), pero en caso de que realmente lo necesites, lo que tendrás que hacer es meterla en campos hidden (además de en el select).
  #9 (permalink)  
Antiguo 20/01/2009, 10:54
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: jsp + struts + listas

Gracias por responder venkman.

Veo que no queda claro lo que pretendo hacer. Intento explicar nuevamente:

En mi aplicacion cada usuario tiene una lista cosas compuesta por objetos cosa.
Cuando quiero editar un usuario obtengo todas sus propiedades, incluyendo la lista cosas. Aqui es cuando obtengo la lista del servidor.

A esta lista cosas se le puede agregar o eliminar elementos cosa que son agregados desde otra lista.
Cuando termino de editar al usuario, la lista cosas del usuario seguramente haya sido modificada, entonces quiero enviar esa lista al servidor.

La funcionalidad es similar a cuando queremos agregar/eliminar contactos a la lista de destinatarios de un mail. Movemos contactos de una lista a otra.

Ejemplo:
Quiero modificar a usuario1 que tiene la siguiente lista cosas: {1,4}.
A este usuario1 le modifico la lista cosas de forma que queda: {1,3,7}.
Esta nueva lista debe ser enviada al servidor para ser guardad en la base de datos.

Por este motivo es que no me sirve enviar al servidor una opcion, tengo que enviar todos los elementos de la lista.
Quizas un select no sea lo mas conveniente.

Se les ocurre alguna alternativa? o modificar lo que ya tengo para que funcione?

gracias

Última edición por gardek83; 20/01/2009 a las 11:05
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:05.