在Spring中存储Session / HttpSession对象中的对象列表

时间:2016-10-15 20:29:59

标签: java spring

大家好我想存储会话对象中的对象列表。 要存储1个obj,我有这个代码:

@Controller
@SessionAttributes("temp")
@RequestMapping(value = "/test")
public class TestController {
    @ModelAttribute("temp")
    public Temp setObj() {
        return new Temp();
    }

    @RequestMapping(method = RequestMethod.GET)
    public String test(Model model) {
        model.addAttribute("temp", new Temp());
        return "testInput";
    }

    @RequestMapping()
    public String add(@ModelAttribute("temp") Temp temp, Model model) {
        model.addAttribute("temp", temp);
        return "test";
    }

    @RequestMapping(value = "/get") // or "/getList" to ensure it works
    public String kek(@ModelAttribute("temp") Temp temp, Model model) {
        model.addAttribute("temp", temp);
        return "test";
    }
}

哪里

class Temp implements Serializible {
    //constructor fields, methods
} 

P.S。存储1个对象工作正常。

但是如何在Session对象中存储List<Temp>并在控制器中添加额外的Temp obj?或许我应该使用smth:

class TempList {
    private List<Temp> list
    //constructor, get/set addToList methods
}

如果是,我如何启动此类并使用tempListObj.addToList(Temp temp)方法?

1 个答案:

答案 0 :(得分:1)

如果您的商店对象与@SessionAttributes注释进行对话,那么您的信息将使您的信息仅在此控制器的范围内可用。如果要将List存储到会话,可以在类级别定义@SessionAttributes({&#34; temp&#34;}),并在任何控制器方法中将其设置为session,如下所示:

model.addAttribute("temp", new ArrayList<Temp>());

然后你可以通过这种方式访问​​它:

public String someMethod(@ModelAttribute("temp") List<Temp> temp) {...}