【发布时间】:2018-09-16 00:25:04
【问题描述】:
在 Spring MVC 中,我有一个 @RequestMapping,它接收一个复杂对象作为 @ModelAttribute。
对象来自 HTML 输入表单。但是现在我还有另一个用例,我需要保留会话中最后提交的对象,直到下次提交表单。
所以,我还声明了一个同名的@SessionAttributes。
代码:
@SessionAttributes("searchRequestDto")
...
@RequestMapping(value = "/test")
public String search(@ModelAttribute SearchRequestDto searchRequestDto, HttpServletRequest request, Model model) {
...
不幸的是,现在searchRequestDto 的值未初始化(新实例化),即使在提交表单时也是如此。
TL;DR:
如何声明参数,以便表单中的值自动存储并在 Session 中可用?
更多详情
该网站有一个复杂的搜索表单(类似于机票或酒店搜索,您必须在其中输入城市、日期、服务等级等)。每当用户返回搜索表单时,在之前提交了搜索表单之后,无论是下一页点击,还是“N”次页面点击或“X”小时后,表单都应该是预先填充了他们最后的搜索输入。我不认为这是第一个答案中建议的 flashAttribute 的用例。
【问题讨论】:
标签: spring-mvc