我在struts2中使用SessionAware但是当我获得session的值时它返回null。我的动作类和方法是 -
public class CustomLocation extends ActionSupport implements SessionAware{
private Map<String, Object> sessionMap;
public String prepareEditCustomLocationForm()throws Exception{
//----some code here------//
sessionMap.put("LocEditId", id);
return SUCCESS;
}
public String editCustomLocation() throws Exception{
Map session = (Map) ActionContext.getContext().getSession(); // it returns null
int id=(Integer)session.get("LocEditId");
//----------some code----------//
retutn SUCCESS;
}
@Override
public void setSession(Map<String, Object> map) {
this.sessionMap = map;
}
}
答案 0 :(得分:1)
有两种方法可以获取操作的会话映射。
SessionAware
。默认情况下,会话映射在操作调用时填充。这是一种更好的方式。尝试
public String editCustomLocation() throws Exception{
int id=(Integer)sessionMap.get("LocEditId");
//----------some code----------//
retutn SUCCESS;
}