【发布时间】:2026-01-07 02:10:02
【问题描述】:
我有一个带有表格和表格的页面。当我提交表单时,我希望它填满表格。
我尝试简单地返回视图名称,但它没有通过“Get”方法。
我看到了 Post Redirect Get 模式,所以我尝试了一下,它有效地刷新了页面。但是验证错误不会显示在标签中。
我在别处看到你可以使用 RedirectAttributes 和 flashAttribute 绑定结果,但它仍然不起作用。
我不知道做这件事的正常方式是什么。
这是我的代码:
@Controller
@RequestMapping("/settings")
public class SettingsController {
@Autowired
protected SettingsService settingsService;
@RequestMapping(method = RequestMethod.GET)
public void loadSettings(Model model) {
model.addAttribute("settings", new Settings());
model.addAttribute("settingsList", settingsService.getAllSettings();
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String saveSettings(@ModelAttribute("settings") @Valid Settings settings, Errors errors, RedirectAttributes redirectAttributes) {
// code
redirectAttributes.addFlashAttribute("settings", settings);
redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.settings", errors);
return "redirect:/settings";
}
}
【问题讨论】:
-
这个和*.com/q/9329741/217324一样吗?
-
这是同一个问题,但答案是一个 hack,这意味着它不是 spring 想要的“正常方式”。由于 spring-mvc 1 我们必须发布然后显示结果。怎么做起来还这么复杂?
标签: java spring spring-mvc