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

Cargar datos en el load de una JSP, trabajando con Struts

Estas en el tema de Cargar datos en el load de una JSP, trabajando con Struts en el foro de Java en Foros del Web. Tengan todos un buen día. Yo vengo de trabajar con .NET y ahora estoy incursionando en JAVA y Struts. Ya entiendo el flujo de struts ...
  #1 (permalink)  
Antiguo 01/07/2008, 15:54
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Cargar datos en el load de una JSP, trabajando con Struts

Tengan todos un buen día. Yo vengo de trabajar con .NET y ahora estoy incursionando en JAVA y Struts. Ya entiendo el flujo de struts y he hecho unos cuantos pininos pero tengo algo que no puedo hacer:

Se que los actions se llevan a cabo digamos cuando alguien presiona un boton en el JSP, ya que ahi se basa en el struts-config para ver el action que debe llevarse a cabo basandose en el parametro action del struts:form y bueno se ejecuta el metodo execute. Pero lo que no entiendo es como hacer para que el action se ejecute cuando carga una pagina, por ejemplo quiero hacer una pagina para modificar el registro de un paciente, entonces tengo mi JSP con los campos de texto y quiero que cuando cargue la JSP se carguen los datos del paciente en las cajas de texto, para ello internamente el action tiene que llevarse a cabo por decirlo asi cuando la pagina está cargando, se ejecuta el action y llena las cajas de texto, entonces esa es mi duda, como hacer para ejecutar cualquier metodo del action cuando la pagina cargue.
  #2 (permalink)  
Antiguo 03/07/2008, 06:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Cargar datos en el load de una JSP, trabajando con Struts

Los datos los tienes que cargar en el action que te lleva a esa JSP no llamar a otro action.
Para ello define una serie de atributos, un Bean o lo que quieras y añade esos mismos objetos al ActionForm de turno, luego desde la JSP con poner lo siguiente ya obtienes los datos cargados en el Action:

-Si es un Bean dentro del ActionForm
<html:text property="tuBeanDentroDeTuForm.nombreAtributodelBe an" styleId="idNombre" styleClass="claseCSS" maxlength="50"></html:text>

-Si es un simple String
<html:text property="nombreString" styleId="idNombre" styleClass="claseCSS" maxlength="50"></html:text>
  #3 (permalink)  
Antiguo 08/07/2008, 22:01
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cargar datos en el load de una JSP, trabajando con Struts

Si, yo entiendo que para un JSP yo tengo mi ActionForm en el cual tengo propiedades que coincidan con los tags del JSP como los text field, y que ahi tengo los getters y los setters y que con un action yo puedo manipularlos y todo eso, pero mi duda, bueno la plantearé con el siguiente ejemplo:

Tenemos 2 JSP's, una llamada links.jsp y la otra llamada resultados.jsp. En la página links.jsp como su nombre lo dice tengo links a páginas, mientras que resultados.jsp es una página en donde yo quiero mostrar datos provenientes de una base de datos.

Es por ello que en links.jsp tengo un link (sea este un button o un hyperlink) que me lleva hacia resultados.jsp, para que el usuario cuando de click en ese boton o link que pueda ir a resultados.jsp donde verá unos datos provenientes de la DB. Entonces yo lo no entiendo como hacer es que cuando alguien de click a ese boton o link, digamos como que se "dispare" un método del Action que está asociado a resultados.jsp y que llene los campos de resultados.jsp usando los setters de su ActionForm, eso es en si lo que no se como hacer, esa ejecución de ese método cuando resultados.jsp esté cargando, algo asi como en ASP.NET (para los uqe tambien conocen .NET) que para mostrar datos en una página aspx cuando esta cargue simplemente pongo la lógica para extraer los datos de una DB en el evento Load() del aspx, eso es lo que quiero hacer en este caso con jsp y struts.

Aclaro que ya se como hacer la lógica, ya tengo el bean que se conecta a la DB y que obtiene los resultados y se la lógica de negocios que iría en el action, solo eso no se como hacer para que se ejecute dicha logica al cargar el jsp, que en mi ejemplo es resultados.jsp.
  #4 (permalink)  
Antiguo 09/07/2008, 00:25
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Cargar datos en el load de una JSP, trabajando con Struts

Si no te he entendido mal lo que no sabes es enlazar el botón o link con un action, a ver si puedo ayudarte esta vez:

<html:link action="/tuActionDeCarga.do" >
<bean:message key="elementoDelProperties"></bean:message>
</html:link>

Puedes sustituir el bean:message por un texto puesto a pelo. Y action por page depende de lo que te interese, aquí puedes encontrar un manual

http://struts.apache.org/1.2.x/userGuide/struts-html.html#link

suerte ;)
  #5 (permalink)  
Antiguo 09/07/2008, 10:35
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cargar datos en el load de una JSP, trabajando con Struts

Te agradezco mucho oblivion, en efecto me funcionó, he hecho un ejemplo simple para probarlo en el cual en una página tenía un link que apuntaba hacia action2.do y en action2 en el método execute puse la lógica para hacer algo tan simple como llenar un textfield con la frase "Hola mundo" y me funcionó.

Pero ahora se me viene a la mente otra interrogante. Mi situacion es la siguiente: Estoy haciendo una aplicacioncita para ver una planilla de empleados, para ello la persona tiene que loguearse y si su usuario y contraseña es correcto pues lo lleva a otra página (planilla.jsp) donde el ve la planilla de empleados, el punto que para ello intervendrían 2 actions, uno que sería el action que manejaría el inicio de sesión (llamemosle LoginAction) el cual se activaría cuando presione el botón de "Iniciar sesión" en el formulario de logueo, en este action está toda la lógica para ir a ver a la DB si ese usuario y password existe o no, y luego, llamar al action que se encargaría de llenar una tabla o un extremecomponent en plantilla.jsp, en síntesis, tendría que llamar al action de plantilla.jsp desde el action de login.jsp, algo más o menos así:

login.jsp - - - -> LoginAction - - - - (si existe usuario) - - - - > PlanillaAtion - - - (llena de datos a planilla.jsp) - - -> planilla.jsp

Es posible en struts mandar a llamar un action desde otro action?
  #6 (permalink)  
Antiguo 10/07/2008, 00:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Cargar datos en el load de una JSP, trabajando con Struts

Sí que puedes, aunque yo no utilizo una llamada desde el propio Action (Java) si no que lo hago vía el mapping del action, te explico:

login.jsp --> Login Action --> si está registrado: mapping.findForward("ok")

y este forward no tiene un tiles sino una llamada a otro action:

<forward name="ok" path="/Logeado.do" />

Así que en el action que tienes definido para el Logeado.do haces lo necesario para obtener los datos de la plantilla y cuando termines rediriges a la página.

Esa nueva clase Action puedes aprovecharla para los métodos que deban ejecutarse tras el submit del formulario de plantilla.jsp (botón Guardar, Volver, modificar....) haciendo que extienda de LookUpDispatchAction, pero bueno, si sólo la quieres utilizar para la precarga de la página y luego hacerte otra para plantilla.jsp allá tú.

Otra opción es meter la lógica de la precarga dentro de la clase Login Action, es decir, cuando sepas si está logeado, haces lo necesario para obtener los datos de la plantilla.jsp y rediriges ahí. Algo como

if(logeado){

//obtengo los datos

mapping.findForward("logeado"); //y este va a plantilla.jsp
}

A ver qué tal ahora ;)
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 11:23.