vida validate tutorial metodo framework ejemplos configurar ciclo java struts2 httpsession

java - validate - struts framework pdf



Invalidación de Sturts 2 sesiones con sesión de solicitud de configuración a una nueva sesión (1)

En mi aplicación Struts, una vez que el usuario inicia sesión, necesito invalidar la sesión actual y crear una nueva sesión. Invalido la sesión con

getHttpServletRequest().getSession().invalidate();

Y creo una nueva sesión como

getHttpServletRequest().getSession(true);

El problema aquí es después de lo anterior. Intento acceder a getSession() le da al estado una excepción no válida; HttpSession no es válido.

getSession() devuelve un mapa donde en mi clase de acción implementa SessionAware que tiene setSession(Map session) .

EDITAR: A continuación está la excepción

Error creating HttpSession due response is commited to client. You can use the CreateSessionInterceptor or create the HttpSession from your action before the result is rendered to the client: HttpSession is invalid java.lang.IllegalStateException: HttpSession is invalid

Entonces, lo que asumo es que Struts getSession() sigue haciendo referencia a la sesión que he invalidado.

¿Cómo hacer que Struts getSession() haga referencia a la nueva sesión que he creado?


Si desea acceder a la sesión de struts después de invalidar la sesión de servlet, debe actualizar o renovar la sesión de struts. Por ejemplo

SessionMap session = (SessionMap) ActionContext.getContext().getSession(); //invalidate session.invalidate(); //renew servlet session session.put("renewServletSession", null); session.remove("renewServletSession"); //populate the struts session session.entrySet();

ahora la sesión de struts está lista para usar la nueva sesión de servlet y estás listo para reutilizar la sesión de struts.