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

Parametros + <html:link> + struts

Estas en el tema de Parametros + <html:link> + struts en el foro de Java en Foros del Web. Hola amigos. Les cuento, tengo una página .jsp en donde cargo un listado de clientes desde la base de datos, mas o menos asi. Código ...
  #1 (permalink)  
Antiguo 24/02/2009, 10:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Parametros + <html:link> + struts

Hola amigos.

Les cuento, tengo una página .jsp en donde cargo un listado de clientes desde la base de datos, mas o menos asi.

Código PHP:
                <logic:iterate name "lista" id "clientes" >
                    <
tr>
                        <
td><bean:write name "cliente" property "cedula" /></td>
                        <
td><bean:write name "cliente" property "nombre" /></td>
                        <
td><bean:write name "cliente" property "apellido" /></td>
                        <
td><bean:write name "cliente" property "fecnac" /></td>
                        <
td><bean:write name "cliente" property "sexo" /></td>
                        <
td><bean:write name "cliente" property "continente" /></td>
                        <
td><bean:write name "cliente" property "pais" /></td>
                        <
td><bean:write name "cliente" property "direccion" /></td>
                        <
td><html:link action "/Registro.do" paramId="cedula" paramName="RegistroForm" paramProperty="cedula">Actualizar</html:link></td>
                    </
tr>
                </
logic:iterate

Como ven, en la ultima columna coloco una etiqueta <html:link>, la idea es generar por cada fila o cada cliente un link Actualizar de forma que cuando el usuario haga click allí vaya a otra pagina para editar la info del cliente que haya seleccionado, para hacer esto obviamente necesito que ese enlace me mande como parametro la cedula del cliente, sin embargo no he podido hacer esto.

Como puedo hacer en este caso para mandar un parametro a traves de la etiqueta <html:link>? sin necesidad de uisar un scriplet?


Saludos y gracias por su ayuda.
  #2 (permalink)  
Antiguo 24/02/2009, 11:21
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Parametros + <html:link> + struts

Hola

Intenta esto:

<html:link action="/Registro.do" paramId="cedula" paramName="clientes" paramProperty="cedula">Prueba</html:link>

Saludos!
  #3 (permalink)  
Antiguo 25/02/2009, 07:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: Parametros + <html:link> + struts

Hola.
Muchas gracias por tu respuesta, eso era.

Solo una pregunta mas, por que paramName = "clientes" en lugar de paramName = "RegistroForm"? Segun lo que he leido, los atributos del <html:link> son mas o menos asi:

paramId es el nombre que quieres que tenga el atributo que vas a pasar.
paramName es el nombre del Bean que tienes en el form del cual vas a obtener el valor
paramProprety es el atributo del Bean que tiene el valor que quieres pasar.

Cuando hablan de el Bean, a que se refieren?

Saludos y gracias de nuevo.

Última edición por Vanessita; 25/02/2009 a las 08:49
  #4 (permalink)  
Antiguo 25/02/2009, 09:04
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Re: Parametros + <html:link> + struts

Cita:
Iniciado por Vanessita Ver Mensaje
Hola.
Muchas gracias por tu respuesta, eso era.

Solo una pregunta mas, por que paramName = "clientes" en lugar de paramName = "RegistroForm"? Segun lo que he leido, los atributos del <html:link> son mas o menos asi:

paramId es el nombre que quieres que tenga el atributo que vas a pasar.
paramName es el nombre del Bean que tienes en el form del cual vas a obtener el valor
paramProprety es el atributo del Bean que tiene el valor que quieres pasar.

Cuando hablan de el Bean, a que se refieren?

Saludos y gracias de nuevo.
Hola,

Se podria decir que tu bean esta dentro de tu lista llamada "lista", es decir, tienes una lista de beanes.

Ahora cuando tu usas el iterate, le asignas un identificador a cada bean, en este caso le pusiste id=clientes, entonces al usar el atributo paramName le tienes que asignar, en tu caso, el identificador del bean, mas NO el nombre del bean.

Es como si dijeras que cada bean RegistroForm tiene como identificador el nombre de clientes, y asi cuando quieras mandar a llamar el bean RegistroForm tienes que llamarlo por el identificador que le pusiste en el iterate.

Espero me hayas entendido.

saludos!
  #5 (permalink)  
Antiguo 26/02/2009, 09:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: Parametros + <html:link> + struts

Hola, muchas gracias por tu respuesta.

Si te he entendido perfectamente, solo me queda una duda, ¿y como sabe el que el bean RegistroForm es
quien tiene como identificador el nombre de clientes? Es decir, como hace para asociar a ese bean RegistroForm
y no a otro ActionForm?


Gracias nuevamente, eres de gran ayuda siempre.
  #6 (permalink)  
Antiguo 26/02/2009, 10:09
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Re: Parametros + <html:link> + struts

Cita:
Iniciado por Vanessita Ver Mensaje
Hola, muchas gracias por tu respuesta.

Si te he entendido perfectamente, solo me queda una duda, ¿y como sabe el que el bean RegistroForm es
quien tiene como identificador el nombre de clientes? Es decir, como hace para asociar a ese bean RegistroForm
y no a otro ActionForm?


Gracias nuevamente, eres de gran ayuda siempre.
Hola,

Supongo que es algo trivial

De hecho en ningun lado le especificas de que tipo son los objetos de tu lista y no solo puedes tener ActionForms, puedes tener cualquier otro objeto.

Quiero pensar que Struts NO sabe de que tipo son los objetos, sino que tu le dices a que propiedad tiene que accesar de tu objeto.

Ejemplo, en tu iterate tienes una lista de objetos (sin importar de que clase sean) y al poner: <bean:write name = "cliente" property = "cedula" /> le estas diciendo a Struts que obtenga la propiedad "cedula" de tu objeto que tiene como identificador "cliente".

Ahorita estas manejando en tu lista objetos de tipo ActionForm, puedes intentar crear una clase extra y crear puros objetos de esa clase y ponerlos en tu lista e iterarlos con el iterate y vas a ver que es lo mismo, de hecho a esto se le llama patron de diseño Tranfer Object, pero bueno, eso es otro tema.

Y cualquier cosa aqui estamos!

saludos!
  #7 (permalink)  
Antiguo 26/11/2009, 03:05
 
Fecha de Ingreso: octubre-2009
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Parametros + <html:link> + struts

siguiendo el hilo de este tema, tengo una duda respecto a esto, yo en mi jsp tengo tambien un textbox "tbx1" y un combobox "cb1", entonces loq kiero es que cuando haga click en el link , aparte de obtener el codigo del campo q leo tambien obtenga los datos del textbox y combobox; porque he tratado de leerlo desde el action directamente instanciando el form que corresponde como se debe hacer por ejm al registrar o modificar pero no captura los datos del textbox ni del combo, solo el paramid que paso por el link..
hay alguna forma de enviarlos o capturarlos desde el action, esto pongo en el action..
(previamente definidos en el actionform)
Código:
        
jspdatosActionForm objjspdatosActionForm = (jspdatosActionForm) form;
String cb1 = objjspdatosActionForm .getcb1();
        String tbx1 = objjspdatosActionForm .gettbx1();

        String strcod = request.getParameter("cedula");
el strcod(que viene del link) si captura el dato, pero de los otros me bota null... nose como capturar los datos de esos campos; yo pienso que no los captura xq no es un submit y los datos se kedan en la jsp nomas...
gracias
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 10:03.