我有一个包含表单和表格的页面。当我提交表格时,我希望它填写表格。
我尝试简单地返回视图名称,但它没有通过" Get"方法
我看到了Post Redirect Get模式,所以我尝试了它,它有效地刷新页面。但是标签中没有显示验证错误。
我在其他地方看到你可以使用RedirectAttributes和flashAttribute bindingResult,但它仍然无效。
我不知道做这件事的正常方法是什么。
这是我的代码:
@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";
}
}
答案 0 :(得分:0)
我做到了,但我不明白为什么:
而不是:
@RequestMapping(method = RequestMethod.GET)
public void loadSettings(Model model) {
model.addAttribute("settings", new Settings());
model.addAttribute("settingsList", settingsService.getAllSettings();
}
我有这个:
@RequestMapping(method = RequestMethod.GET)
public void loadSettings(Model model) {
if (!model.containsAttribute("settings")) {
model.addAttribute("settings", new Settings());
}
model.addAttribute("settingsList", settingsService.getAllSettings();
}
它确实有效,但表格会保留数据。它是一个或另一个:/