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

Recargar una jsp devuelve Null constantemente

Estas en el tema de Recargar una jsp devuelve Null constantemente en el foro de Java en Foros del Web. Hola, como estan? Soy Virginia. Queria comentarles una situación: estoy trabajando en una aplicación web con Struts 2. Desde el menu llamo a un action, ...
  #1 (permalink)  
Antiguo 30/04/2011, 17:19
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Recargar una jsp devuelve Null constantemente

Hola, como estan?
Soy Virginia. Queria comentarles una situación: estoy trabajando en una aplicación web con Struts 2. Desde el menu llamo a un action, este lo que hace es inicializar objetos, en particular lista1 y lista2, que contiene informacion la cual luego muestro en el jsp que este action devuelve. Todo va bien. Pero estando ahora en la jsp, nuevamente voy al action para incorporar un elemento seleccionado de la lista 2 en la lista 1. Lo hace bien. de hecho al volver a la jsp, la lista 2 no tienen dicho objeto, mas la lista 1 no se refresca.

Veo que cada vez que voy al acttion pierdo datos. Supongo que no estoy entendiendo bien la logica de struts. Hay alguna forma de configurar que el action lleva y decuelve tambien estos objetos? por ejemplo <action....> <param...></action>

Gracias.
  #2 (permalink)  
Antiguo 01/05/2011, 00:06
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: Recargar una jsp devuelve Null constantemente

hola.
esta un poco confuso tu problema, jeje
yo estoy aprendiendo struts tmb, podrias usar una variable de session, para mantener valores de pagina en pagina, o de action - action.

pero seria bueno que reformularas tu pregunta,

saludos
  #3 (permalink)  
Antiguo 02/05/2011, 05:50
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Respuesta: Recargar una jsp devuelve Null constantemente

Hola ikki872 y a todos.
Si, entiendo, es medio confuso. Explico:
En el post anterior mencione unas listas, 1 y 2, pues esta vez voy a ponerles otro ejemplo con el codigo.

Dado un link en mi jsp menu que apunta a un action en el archivo struts.xml, redirecciona a dicho action donde inicializo una variable "private FormTipoDTO formulario" vacio. Esta es una clase que contiene toda la informacion que necesito mantener. Entonces la clase Action es asi:

public class FormularAction{
private FormTipoDTO formulario;

public String execute{
formulario = new FormTipoDTO(); //crea una formulario vacio.
formulario.inicializar();
session.put("formulario", formulario); //guardo el formulario creado en la session.
return success;
}

public String metodo(){
formulario = session.get("formulario");
//aqui tengo el mismo formulario que inicialice en el execute.

String valor = formulario.gteEnergia().toString(); //aqui siempre es 0.0
......
}

public FormTipoDTO getFormulario()
{ return formulario;}
public void setFormulario(FormTipoDTO form)
{ this.formulario = form;}

}

public class FormTipoDTO {

private Float energia;
public void inicializar()
{
...
energia = new Float(0);
....
}
public FormTipoDTO()
{ setEnergia(new Float(0)): }

public void setEnergia(Float f)
{this.energia = f;}

public Float getEnergia()
{return this.energia;}
}

esto funciona bien pues aparece la jsp con los campos en blanco.

page.jsp:

....
<body>
<s:form id="formularioAll" action="formular">
....
<s:inputtext name="energia" value="%{fomulario.energia}" key="titulo.energia">
¿ Ò podria ser:
<s:inputtext name="energia" value="%{#session.fomulario.energia}"
?
key="titulo.energia">
....
<s:submit ...... >
</s:form>
</body>

struts.xml

<action name="formular" class="....FormularAction" method="metodo">
<result name="error">page.jsp</result>
<result name="sucess">page.jsp</result>
</action>

Estando en la jsp, donde siempre se carga una caja de texto en blanco, edito o completo dicho campo energia, y presiono el submit del form, en el method "metodo" del FormularAction, el metogo getFormulario siempre devuelve null, y no se donde podria tener el valor de energia que cargue, pues el getEnergia de formulario da exception pues formulario es null. ¿Se entiende?
Por otro lado, como una instancia del formulario fue cargado en la sesion en el inicializar, cuando estoy en el action puedo solicitar el formulario de la session, pero energia es un campo = 0.0. ¿Como se puede guardar el valor de las variables cuando se editan en la jsp?

Espero haber sido mas clara. Gracias, saludos.
  #4 (permalink)  
Antiguo 05/05/2011, 19:54
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 14 años, 11 meses
Puntos: 15
Respuesta: Recargar una jsp devuelve Null constantemente

Y donde estan los request, response, session de struts? No estas implementando para nada struts, salvo para hacer un redirect con un return, que ademas se suele hacer con findforward hacia un mapeo que tengas en el struts-config de tu proyecto.

Supongo que estaras aprendiendo struts, te recomiendo leer poco a poco todas las guias que hay en apache para entender bien el MVC, como se diseña una aplicacion por capas, las validaciones de formularios, los beans de sesion, etc.

Un saludo!
  #5 (permalink)  
Antiguo 06/05/2011, 04:14
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 13 años, 8 meses
Puntos: 306
Respuesta: Recargar una jsp devuelve Null constantemente

Cita:
Iniciado por javiDP
Y donde estan los request, response, session de struts? No estas implementando para nada struts, salvo para hacer un redirect con un return, que ademas se suele hacer con findforward hacia un mapeo que tengas en el struts-config de tu proyecto.
Está usando Struts2, por lo que no necesita (incluso es desaconsejable) usar los objetos request y response.

vickynemec, el objeto formulario no tienes que meterlo en la sesión, ya lo tienes en el ValueStack (private FormTipoDTO formulario)

Esto sobra
formulario = session.get("formulario");

Y si no recuerdo mal, el execute se ejecuta siempre a menos que le digas lo contrario, por lo que cuando llamas a metodo(), estás reiniciando siempre el formulario.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 06/05/2011, 05:01
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 14 años, 11 meses
Puntos: 15
Respuesta: Recargar una jsp devuelve Null constantemente

En struts2 no se usan los request, response y demas? Pues no lo sabia. Donde yo trabajo se hace asi, aunque si es desaconsejable pues hazle caso a xerelo ;)

Un saludo!
  #7 (permalink)  
Antiguo 06/05/2011, 06:24
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 13 años, 8 meses
Puntos: 306
Respuesta: Recargar una jsp devuelve Null constantemente

No es que no se usen, es que está pensado para que no tengas que hacerlo y sólo recurras a ello en casos excepcionales.

Por ejemplo, los datos del formulario jsp, pasan automáticamente al objeto "formulario".
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 26/05/2011, 19:39
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Recargar una jsp devuelve Null constantemente

Hola, garcias por las respuestas.
Bueno, pues les comento lo siguiente. Loq eu hice para qeu funcione es pasar los campos al action, no hubo caso con el objeto del tipo FormularioDTO.

Como andubo de esa forma no lo toque mas.
Y si, struts2 no hace uso de request y response, se supone que todo se maneja con los getter y setter del action.

Saludos!

Etiquetas: struts
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 17:39.