Spring mvc SpringMVC从以前的调用中获取模型
我的设置很简单。 我有一个带有get和POST方法的控制器。getmethod填充一个模型,然后该模型用于呈现HTML表单的thymeleaftemplate 当用户单击submit时,formdata将发布到postmethod。然后,该方法执行一些业务逻辑,可能有两种结果 第一种可能性:一切正常,并且执行了到getmethod的重定向 第二种可能性:发生异常。在这种情况下,应向用户提供与他提交的表格相同的表格,其中包含他试图提交的数据。因此,在这种情况下,我的postmethod返回与getmethod相同的模板的标识字符串。但是thymeleaf告诉我模型缺少一些属性。 为什么spring不在postmethod中注入用于呈现getmethod模板的相同模型Spring mvc SpringMVC从以前的调用中获取模型,spring-mvc,model,thymeleaf,Spring Mvc,Model,Thymeleaf,我的设置很简单。 我有一个带有get和POST方法的控制器。getmethod填充一个模型,然后该模型用于呈现HTML表单的thymeleaftemplate 当用户单击submit时,formdata将发布到postmethod。然后,该方法执行一些业务逻辑,可能有两种结果 第一种可能性:一切正常,并且执行了到getmethod的重定向 第二种可能性:发生异常。在这种情况下,应向用户提供与他提交的表格相同的表格,其中包含他试图提交的数据。因此,在这种情况下,我的postmethod返回与get
有没有办法在postmethod中从getcall中回收模型?我通常使用RedirectAttributes在post方法之后重定向。它用于向模型添加数据,即使在重定向中也是如此 这是一个如何使用它的示例:
@PostMapping("/course")
public String addCourse(@RequestParam("course") Course course, RedirectAttributes redirectAttributes) {
// show a popup that the `account.name` has been added
redirectAttrs
.addAttribute("course", course)
.addFlashAttribute("message", "Course created!");
return "redirect:/courseOverview";
}
给我们看看代码。必须在post方法中再次设置模型属性,以使其可用于post方法渲染的视图。这是因为它们在请求范围内,只能持续1个请求。@MohamedSanaulla这是我希望听到的答案。所以我已经按照你的建议做了,而且成功了。我发布这个问题的目的是希望有一种更简单的方法来验证代码和性能的简单性,因为我必须进行几个db查询来初始化模型属性。无论如何,谢谢。我没有说会话,因为使用会话会有它自己的问题。尽可能使您的请求保持无状态是很好的。DB查询不应该成为问题,因为最近访问的查询在下次执行时应该会更快。谢谢您的回答。我现在正在考虑其他一些事情,但我将在下周尝试它,如果它改进了我的代码,我会给你一个升级投票。