在 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