Java - pierdo valores de var guardadas en sesion

 
Vista:

pierdo valores de var guardadas en sesion

Publicado por riveiras (33 intervenciones) el 13/08/2010 10:52:39
Hola, a ver si me podeis hechar una mano.

Estoy realizando mi proyecto de fin de carrecta, al principio usaba frames pero hace poco é cambiado a tiles.
La página tiene 3 divisiones horizontales: cabecera, menu y cuerpo.
Expecto el login que tiene cabecera y cuerpo.

Al realizar el login guardo en sesion USUARIO y ESADMIN, que son el nombre del usuario y un true si es un usuario con rol de administrador.
Esto se debe a que el menú muestra más opciones dependiendo de si es admin o no.

Al loguearse muestra una página de inicio donde recupera correctamente los valores de sesión. Pero al volver a pinchar en cualquier valor del menú se pierde el valor de ESADMIN de sesión, y no muestra el menú.

Pq se me pierde valores de sesión si no hago nigún remove atribute? Tiene que ver con el uso de tiles?Tengo que mandarle el usuario y si es admin de otra manera en vez de guardar en sesión?
Lo raro es que el usuario siempre lo recupera pero el valor esadmin no?

pueden ayudarme?Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pierdo valores de var guardadas en sesion

Publicado por Anonimouse (12 intervenciones) el 01/09/2010 23:54:16
como guarda los valores en ESADMIN, un objeto, string, etc. y como sube estos valores a sesion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pierdo valores de var guardadas en sesion

Publicado por riveiras (33 intervenciones) el 08/09/2010 09:19:10
El problema es que tenía un metodo limpiar session que se ejecutaba al iniciar el action en la primera operación
De la siguiente forma

public void limpiarSession(HttpSession session, String nombreObjeto){

// Vacio de objetos la sesion,
Enumeration enume=session.getAttributeNames();
while(enume.hasMoreElements()){
String atributo=enume.nextElement().toString();
if (!atributo.equals(nombreObjeto) &&
!atributo.equals(Constants.SesionVars.USUARIO)){
session.removeAttribute(atributo);
}
}

En el menú al pulsar en cualquier opción se entra en un action por lo que al ejecutar esta operació me limpiaba el valor de ESAMIN

La solución añadir !atributo.equals(Constants.SesionVars.ESADMIN))
al if para que no borre eses atributo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar