我正在处理一个处理表单数据的Spring-Boot应用程序。我的问题是,例如在验证错误的情况下,是否有可能绑定表单数据。
我的情况:
form.mustache:
<form action="/form/basisdata" method="post" name="basisdata">
<label for="contactName">Kontakt / Ansprechpartner*:</label>
<input type="text" name="contactName"/>
<label for="emailAddress">E-Mail-Adresse*:</label>
<input type="text" name="emailAddress"/>
<input type="hidden" name="_csrf" value="{{_csrf.token}}" />
<button class="a-button" type="submit">Weiter</button>
</form
控制器方法:
@PostMapping("/basisdata")
public ModelAndView setFormBasisdata(@Valid @ModelAttribute("basisdata") Basisdata basisdata, BindingResult bindingResult, Map<String, Object> model) {
if (bindingResult.hasErrors()) {
List<Error> errorList = getErrors(bindingResult);
model.put("errors" , errorList);
model.put("basisdata", basisdata);
return new ModelAndView("formBasisdata", model);
}
return new ModelAndView("formNextStep", model);
}
如果发生验证错误,我们将正确返回到同一表单页面并显示错误列表。但是表格保持为空。如果表单中预先填写了之前输入的值,我会更喜欢。
在这种情况下,返回ModelAndView是错误的选项吗?
在使用spring形式的jsp模板中,形式中有一个属性,该属性在百里香中的th:object上指定模型(modelAttribute)。我需要更改/添加胡子模板吗?