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

Acceder a un bean desde distintas páginas

Estas en el tema de Acceder a un bean desde distintas páginas en el foro de Java en Foros del Web. Hola a todos, Estoy construyendo una pequeña aplicación con Spring y he creado el marco de trabajo con dos vistas, dos controles y un par ...
  #1 (permalink)  
Antiguo 21/09/2010, 07:55
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Acceder a un bean desde distintas páginas

Hola a todos,

Estoy construyendo una pequeña aplicación con Spring y he creado el marco de trabajo con dos vistas, dos controles y un par de clases para la lógica. Cada controlador llama su succesfull view. Pero mi problema viene en el intento de uso de la persistencia de los beans. Si bien en el proceso de debug puedo ver que los valores se conservan, mi problema viene cuando la otra vista llama su controlador, este debe instanciar la clase que tiene los datos, pero estos no estan almacenados ahí porque son una nueva instancia. ¿Como podría manejar esto?. Gracias!
  #2 (permalink)  
Antiguo 21/09/2010, 10:48
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Acceder a un bean desde distintas páginas

Haciendo que tu bean sea un singleton o guardando los valores en atributos estáticos, también pasando el bean a la sesión (valdría en la request si usas forward )
  #3 (permalink)  
Antiguo 21/09/2010, 10:53
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Acceder a un bean desde distintas páginas

Hola xerelo, muchas gracias por tu respuesta. Como hago que mi bean sea un singleton? metiendolo en un session? o java trae algo nativo para declararlo como tal?. Me gusta la idea de atributos estaticos, lo había pensado así con la clase completa. Pero cuando le puse static class me salio error.
  #4 (permalink)  
Antiguo 21/09/2010, 12:17
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Acceder a un bean desde distintas páginas

Un singleton es un archivo de una clase que sólo se instanciará una vez, creo que spring te permite crear beans de esta forma, pero a efectos prácticos conseguirás el mismo efecto que si utilizas métodos y atributos estáticos, y lo entenderías mejor.

¿Static class? Si no recuerdo mal, eso sólo existe para inner class. Tú no necesitas clases estáticas, te llega con que tenga un atributo static para guardar el bean, y un par de métodos static para recuperarlo y guardarlo.

De todas formas, siempre te será más cómodo (y lógico) guardar el bean en la sesión, está pensada para eso, mantener valores entre distintas páginas/acciones.
  #5 (permalink)  
Antiguo 21/09/2010, 13:20
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Acceder a un bean desde distintas páginas

Muchas gracias por la respuesta.
Voy a hacer la prueba con los metodos estaticos en cuanto pueda. Lo de cargar el bean en sesión, aunque suena factible me parece que perdería la escencia de la persistencia que ofrecen los beans, porque bien podría hacer lo mismo con cualquier clase y guardar el objeto en session sin que este sea un bean. ¿No?
  #6 (permalink)  
Antiguo 21/09/2010, 18:37
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Acceder a un bean desde distintas páginas

Probado, efectivamente funciona. Muchas gracias.
  #7 (permalink)  
Antiguo 22/09/2010, 02:05
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Acceder a un bean desde distintas páginas

Efectivamente puedes guardar cualquier objeto en la sesión, sea o no bean.

Sobre perder la esencia, también es cierto pero entre comillas. Crear beans con Spring equivale, simplificándolo mucho, a hacer un new. En tu caso, es evidente que no necesitas crear un objeto nuevo sino utilizar una ya creado, y eso lleva a la conclusión de que en el segundo controlador no necesita usar Spring para crear un bean que no vas a utilizar.

Si por ejemplo pudieses llegar a ese segundo controlador desde otro sitio sin pasarle un bean, pero el controlador necesitase un bean para su lógica de negocio, entonces sí estaría bien que utilizases Spring para crearlo.

Etiquetas: acceder, bean, distintas
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 04:13.