В Struts2 Session Map и Request Map являются оболочками для базовых объектов HttpServletRequest и Session.
Если вам нужен только доступ к атрибутам, используйте обертки.
Используйте ActionContext для их получения (как оболочек, так и базовых объектов HTTP) только, если вы находитесь внутри Interceptor
или POJO
.
Если вы находитесь внутри Action
, лучше всего реализовать интерфейс, который будет автоматически заполнять объект вашего действия:
Чтобы получить оболочку карты запроса, используйте RequestAware
public class MyAction implements RequestAware {
private Map<String,Object> request;
public void setRequest(Map<String,Object> request){
this.request = request;
}
}
Чтобы получить оболочку карты сеанса, используйте SessionAware
public class MyAction implements SessionAware {
private Map<String,Object> session;
public void setSession(Map<String,Object> session){
this.session = session;
}
}
Чтобы получить базовые объекты HttpServletRequest и HttpSession, используйте ServletRequestAware
:
public class MyAction implements ServletRequestAware {
private javax.servlet.http.HttpServletRequest request;
public void setServletRequest(javax.servlet.http.HttpServletRequest request){
this.request = request;
}
public HttpSession getSession(){
return request.getSession();
}
}
Тем не менее, стандартный поток данных между JSP-страницами и действиями или действиями и действиями получается с помощью аксессоров/мутаторов, более известных как геттеры и сеттеры. Не изобретайте велосипед.
23.10.2013