como puedo pasar un valor de un formulario a otro, en Java?

5,099 views
Skip to first unread message

marthica

unread,
Dec 28, 2008, 1:11:30 AM12/28/08
to javamaniaco
Una buena noche para tod@s

Estoy haciendo una aplicaciòn en Netbeans 6.5, en un formulario estoy
haciendo la búsqueda de un valor (un número de identificación de una
empresa) y necesito pasar ese valor, a otro formulario diferente.

Alguien me podría explicar que instrucciòn se puede usar?

Muchas gracias.

Jorge Carneiro

unread,
Dec 28, 2008, 7:15:18 AM12/28/08
to javam...@googlegroups.com
Depend de la tecnología que estés utilizando, por ejemplo con struts sueles tener la request en cualquiera de las implementaciones, extiendas de baseDispatchAction(con varios métodos) o de BaseAction(implementando el método execute). En esos dos casos tienes la request. Si necesitas en el siguiente formulario y no lo quieres conservar, en esa misma posición lo metes en el formulario.

Ejemplo Si tienes un ActionForm y el formulario definido en struts se llama empleadoForm

EmpleadoForm formularioEmpleado = (EmpleadoForm)  form;    (este form será el que tengas en el método definido, bien sea el execute o un método de baseDispatchAction.

Una vez definido el formulario con el tipo que quieras, metémos el valor en el formulario.

Integer idEmpleado = 18;
formularioEmpleado.setIdEmpleado(idEmpleado);

Ese idEmpleado también lo puedes traer del formulario anterior, sería:
formularioEmpleado.setIdEmpleado(formularioEmpleado.getIdEmpleado());

y sino se puede pasar por session, pero no se debe abusar de cargar muchos datos en session. Podrías cargarlo en session y al salir de esa iteracción, vaciar ese valor de session.

Ejemplo, si el valor es idEmpleado sería:

-- Cargamos en session:

request.getSession().setAttribute("action.empleados.id.empleado", idEmpleado);

En ese caso para acceder a la variable en el jsp, cogerías el nombre de la variable definida: "action.empleados.id.empleado".

para vaciar la session al salir de ese formulario sería.
request.getSession().removeAttribute("action.empleados.id.empleado");

Espero que esta explicación te sea útil.

Esto es un ejemplo con struts, pero se puede hacer de muchas formas.

La solución en la gran mayoría sería pasarla en la request o pasarla en session. Yo en session recomiendo vaciar el valor de la misma para no sobresaturar la session.

Un saludo.

Gabriel Ernesto Gutierrez Añez

unread,
Dec 28, 2008, 11:13:54 AM12/28/08
to javam...@googlegroups.com
Como dijo Jorge, depende mucho de la tecnologia, si es JSP, Tapestry, Strut, JSF, GWT, ZKFramework, WebUI (JSF de Netbeans, se programa a nivel grafico arrastrando los componentes a un panel grafico) o si es una aplicacion stand alone podria ser con swing, awt, entre otras.

Si pudieses especcificar mas sobre que estas trabajando? como quiera aqui te paso algunos tips de algunas tecnologias.

si es una app stand alone lo sacas del componente TextField o JTextField directamente txt.getText().
algo asi

JTextField txt = new JTextField();  //variable de la clase

//en el constructor
txt.addActionListener(this); //la misma clase se va a encargar de escuchar el evento de click a este boton.

public void actionPerformed(ActionEvent e){
    if(e.getSource() == txt){
        String idEmpleado = txt.getText();
    }
}

//La clase debe implementar la interface ActionListener


Ahora bien, si es una app de JSP seria algo asi

en el jsp

<form action="GuardarServlet" method ="post">
   <input type="text" name="idEmpleado"  />
   <input type="submit" value="Guardar">
</form>

en el servlet dentro del metodo doPost

//aqui se obtiene el valor
String idEmpleado = request.getParameter("idEmpleado");
//se procesa...

Tambien puedes utilizar la etiqueta de <use:bean /> (funcionaria tipo tecnologias basadas en JSTL, con algunas diferencia en el metodo que recibe la accion o la peticion)

Si usas alguna tecnologia como Strut, JSF o WebUI, estas tecnologias estan basadas en JSTL (Java Standar Tag Library) requieren algo mas avanzado de configuracion y cuando se invoca la peticion al "servlet" no llegan a un metodo doPost o doGet si no, a uno que tu hayas establecido y los valores del formulario ya estan seteados o asignados a tu objeto (llamado DTO, POJO o JavaBean). luego en este metodo solo debes de implementar la logica haciendo uso de tu DTO (Jorge Carneiro ya explico un poco de struts 1.3, si utilizas Struts 2 es muy diferente)

Si utilizas Tapestry, es el INFIERNO OLVIDALO, intente hacer una app hace mucho y no supe como.
Se me hiso una version barata de JSTL pero implementada por achivos xml (o creo q tienen su propia extension no recuerdo) pero en fin, es LO MAS HORRIBLE QUE HE VISTO!!!!

Si utilizas GWT oo ZKFramework es como trabajar con swing lo obtienes directamente del campo ya que aqui la programacion es diferente, se programa como swing y todo se compila para HTML y javascript (en estos 2 frameworks todo es mas facil hahaha)

GWT tiene una ligera diferencia a ZKFramework ya que las invocaciones al servidor son realizadas con RPC y hay que implementarlas, en ZKFramework no, el valor se pasa automagicamente al servidor y hasta trae su propio css integrado. La pagina de GWT o ZKFramework esta muy bien documentada.

Espero te sirva.

Saludos,


2008/12/28 Jorge Carneiro <jorb...@gmail.com>



--
_____________________
Ing. Gabriel Gutiérrez
(0052) (1) (811) 071-7213
Monterrey, México

marthica

unread,
Dec 29, 2008, 9:03:47 PM12/29/08
to javamaniaco
Hola Jorge y Gabriel

Muchisisisisimas gracias por sus respuestas, me han servido mucho.

Un abrazo y un feliz año.


Martha Cecilia



On 28 dic, 11:13, "Gabriel Ernesto Gutierrez Añez"
> 2008/12/28 Jorge Carneiro <jorbai...@gmail.com>
> > El 28 de diciembre de 2008 7:11, marthica <marthica....@gmail.com>escribió:
>
> >> Una buena noche para tod@s
>
> >> Estoy haciendo una aplicaciòn en Netbeans 6.5, en un formulario estoy
> >> haciendo la búsqueda de un valor (un número de identificación de una
> >> empresa) y necesito pasar ese valor, a otro formulario diferente.
>
> >> Alguien me podría explicar que instrucciòn se puede usar?
>
> >> Muchas gracias.
>
> --
> _____________________
> Ing. Gabriel Gutiérrez
> (0052) (1) (811) 071-7213
> Monterrey, México- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Reply all
Reply to author
Forward
0 new messages