正如Spring 规范所说,@ModelAttribute 将在映射处理程序之前执行,@SessionAttribute 将模型属性保留在会话中。
考虑以下场景:在调用控制器后创建表单 bean,并将其设置为会话属性。下次调用 MenuController 时,将再次执行 createForm() 并创建另一个新的表单 bean。我的问题是:这个最新创建的表单 bean 会被设置为会话属性吗?哪个表单bean 将绑定到方法bookList() 中的参数?
希望大家能帮忙。谢谢你。
@Controller
@RequestMapping("/store")
@SessionAttribute("form")
public class MenuController {
@ModelAttribute("form")
public Form createForm() {
return new Form();
}
@RqeustMapping("/book")
public String bookList(@ModelAttribute("form") Form form){
//processing the form
}
}