我可以成功验证我的表单甚至返回错误。 当我的视图有一些选项需要填充来自控制器的数据时,我的问题就开始了。
当我做model.addAttribute(...)时,它会停止将错误传递给视图:
public String registerSubmit(@Valid @ModelAttribute("jconcorrente") Jconcorrentes concorrente, BindingResult result, HttpServletRequest request, Model model){
if(result.hasErrors()) {
model.addAttribute("listJdistrito", this.jdistritoService.listJdistrito());
model.addAttribute("listJtipocodiden", this.jtipodocidenService.listJtipodociden());
model.addAttribute("jconcorrente", new Jconcorrentes());
return "register";
}
所以我的问题是如何在不影响验证错误的情况下传递数据?
答案 0 :(得分:1)
我的猜测是,您的错误未被填充,因为您正在将模型属性的新实例直接添加到模型中。
尝试删除此行:
model.addAttribute("jconcorrente", new Jconcorrentes());
从if语句并创建这样的新方法:
@ModelAttribute("jconcorrente")
public Jconcorrentes getJconcorrentes() {
return new Jconcorrentes();
}
保持其他所有内容相同,它应该有效。