在 Spring Framework 中,处理 POST 表单提交后,您通常需要:

1. 重定向到另一个页面:

@PostMapping("/form")
public String submitForm(FormData data, RedirectAttributes attributes) {
    // ...
    return "redirect:/success"; 
}

这将重定向到 /success 路径,通常是您的成功页面。

2. 返回视图名称以渲染页面:

@PostMapping("/form")
public String submitForm(FormData data) {
    // ... 
    return "success";
}

这将渲染 src/main/resources/templates/success.html 页面。

3. 返回模型并视图名称:

@PostMapping("/form")
public String submitForm(FormData data, Model model) {
    // ...
    model.addAttribute("message", "Success!");
    return "success"; 
}

这将在模板中提供 message 变量,可在页面中显示成功信息。

4. 返回 @ResponseBody:

@PostMapping("/form")
public @ResponseBody String submitForm(FormData data) {
    // ...
    return "Success!";
}

这将直接返回 “Success!” 字符串作为响应体, bypass 视图解析。

5. 重定向并返回模型:

@PostMapping("/form")
public String submitForm(FormData data, RedirectAttributes attributes) {
    attributes.addFlashAttribute("message", "Success!");
    return "redirect:/success";
} 

这将闪存(flash)一个 message 变量,并在重定向的 /success 路径处理请求时提供该变量。
所以,通过上述方式,我们可以很灵活的控制表单提交后返回的响应:

  • 返回视图
  • 返回模型和视图
  • 直接返回响应体
  • 进行重定向
  • 重定向并提供闪存数据
    这使我们可以根据具体业务需求选择合适的响应方式。
    如果您在 Spring 表单提交响应时有任何其他问题,欢迎在这里提出。我会尽量提供详细的解答和指导来帮助您实现所需的功能。
文档更新时间: 2023-05-29 22:31   作者:admin