在页面之间维护模型数据(Spring 3 MVC)
问题内容:
我在Spring中有一个添加联系人过程,该过程将跨越多页,第一页将进行文本输入,第二页将进行图像输入,第三页将显示草稿。
第一页
@RequestMapping("/addContact")
public String registerContact(@ModelAttribute Contact contact) {
return "addContact";
}
@RequestMapping("/addContact")
第二页
@RequestMapping("/addImages")
public String registerImages(@Valid Contact contact, BindingResult result) {
return "addImages";
}
如何维护页面之间的联系模型数据,以便我可以给用户选项以使页面之间往回移动?
问题答案:
如果您有一个控制器来处理所有页面,则可以使用它@SessionAttributes
来存储Contact
会话中的两次请求。在最后一页之后使用SessionStatus
标记使用@SessionAttribtues
完成(用于清理)。
@Controller
@SessionAttributes("contact")
public AddContactController {
@ModelAttribute
public Contact contact() {
return new Contact();
}
@RequestMapping("/addContact")
public String registerContact(@ModelAttribute Contact contact) {
return "addContact";
}
@RequestMapping("/addImages")
public String registerImages(@Valid @ModelAttribute Contact contact, BindingResult result) {
return "addImages";
}
@RequestMapping("/save")
public String firstPage(@ModelAttribute Contact contact, SessionStatus status) {
status.complete();
}
}