2

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

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");
}
4

2 回答 2

0

getSession()如果未找到现有会话,将返回一个新会话。所以你不必担心这个会返回nullget()但请注意, HttpSession 下没有方法,它是getAttribute().

所以你可以这样做:

public SearchFilters getFilters() {

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

    return (SearchFilters) getSession().getAttribute("Filters");
}
于 2013-06-30T16:02:02.627 回答
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

该值是一个不包含任何值的徒手对象,但您可以为其创建一个构造函数并直接传递该值。

于 2013-06-30T16:14:18.133 回答