如何在会话中设置值?

时间:2013-06-30 15:34:56

标签: java servlets struts2 struts httpsession

如果我得到空会话,我需要设置一些值来播放动作类。所以,这是方法

public SearchFilters getFilters() {
 return (SearchFilters) getSession().get("Filters");
}

我想查看会话,如果它是null,那么我需要在这里设置一些值。

public SearchFilters getFilters() {
if(getSession().get("Filters").equals(null)){
---- //How to set the values and return ?
}
 return (SearchFilters) getSession().get("Filters");
}

2 个答案:

答案 0 :(得分:0)

如果找不到现有会话,

getSession()将返回新会话。所以你不必担心这个会回来 null 。请注意,HttpSession下没有get()方法,它是getAttribute()

所以你可以这样做:

public SearchFilters getFilters() {

    if(getSession().getAttribute("Filters") == null) {
         getSession().setAttribute("Filters", new SearchFilters());
    }

    return (SearchFilters) getSession().getAttribute("Filters");
}

答案 1 :(得分:0)

public SearchFilters getFilters() {
if(getSession().get("Filters") == null){
  //How to set the values
  getSession().put("Filters", new Filters()); 
}
// and return.
 return (SearchFilters) getSession().get("Filters");
}

假设您已在实施SessionAware后将会话注入到getter方法获取的操作中。值是自由手对象,它不包含任何值,但您可以为其创建构造函数并直接传递值。