jueves, 27 de septiembre de 2007

Acceder a una sesión dentro de un Action

Acceder a los contenidos de la sesión desde un Action es una cosa bastante sencilla, para empezar, hay que hacer que el action mismo implemente la interfaz SessionAware e implemente el metodo adecuado.


public class ActionConSession implements SessionAware {
private Map session;

public void execute() {
//Agregamos un nuevo valor a la sesion
session.put("nuevo", valor);

//Eliminar valores de la sesion
session.remove("nuevo");

//Recuperar un valor de la sesion
Object v = session.get("otro");
}

public void setSession(Map session) {
this.session = session;
}
}


Todas las operaciones con la sesion son mas sencillas pues internamente solo se trata de implementar las acciones sobre un mapa, sin embargo, en caso de que sea necesario acceder a las funcionalidades reales del objeto HttpSession podemos realizarlo mediante la interfaz ServletRequestAware.


public class ActionHttpSession implements ServletRequestAware {
private HttpServletRequest request;

public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

public String execute() {
//Pedimos la sesion del request y en caso de no existir la creamos
HttpSession session = request.getSession(true);
}
}


De aqui en adelante puede manipularse la session como normalmente se realizaria sin Struts. En lo personal sugiero usar SessionAware pues es mas sencillo y abstraes las dificultades del proceso de usar una sesión.

3 comentarios:

Unknown dijo...

Hola, esto me urge, estoy algo confundida, veras tengo una aplicacion web, en struts, tengo mi jsp, Mi ActionForm y en el Action. Lo que necesito es saber como obtener un dato de sesion que guarde en el jsp, recuperarlo en el ActionForm para hacer una consulta a la base de datos con ese dato, y porteriormente llenar una lista del formulario con esos datos. Espero que se entienda lo que requiero saber, supongo que poddria usar lo que mencionas aqui pero no tengo muy claro como hacerlo

yanmaneee dijo...

irving shoes
hermes belt
lebron 16
fila shoes
jordan 11
kate spade handbags
hermes belt
adidas tubular
jordan shoes
golden goose shoes

sewing factory dijo...

Acceder a los contenidos de la sesión desde un Action es una cosa bastante sencilla, para empezar, hay que hacer que el action mismo implemente la interfaz SessionAware e implemente el metodo adecuado. stitching factory in karachi , stitching factory in islamabad ,