代码之家  ›  专栏  ›  技术社区  ›  Alex R

如何从表单或会话填充ModelAttribute?

  •  0
  • Alex R  · 技术社区  · 6 年前

    在春季MVC,我有一个 @RequestMapping 接收复杂对象作为 @ModelAttribute

    对象来自HTML输入表单。但是现在我还有另一个用例,我需要在会话中保留最后一个提交的对象,直到下一次提交表单。

    所以,我也宣布 @SessionAttributes

    代码:

    @SessionAttributes("searchRequestDto")
    ...
    @RequestMapping(value = "/test") 
    public String search(@ModelAttribute SearchRequestDto searchRequestDto, HttpServletRequest request, Model model) {
      ...
    

    不幸的是,现在 searchRequestDto

    TL;博士:

    如何声明参数以便表单中的值自动存储并在会话中可用?

    该网站有一个复杂的搜索表单(类似于机票或酒店搜索,您必须输入城市、日期、服务类别等)。无论用户何时返回搜索表单,在之前提交了搜索表单之后,无论是下一个页面点击,还是“N”页面点击数或“X”小时数,都应在表单中预先填写他们最后的搜索输入。我不认为这是flashAttribute的一个用例,在第一个答案中提出。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Kyan    6 年前

    据我所知 @SessionAttributes flashAttribute . @ModelAttribute 提交表格时。 this ,这将在会话中保存属性以供以后重用。