Spring MVC验证表单并返回数据(如果有错误)

时间:2015-07-06 10:56:36

标签: java spring spring-mvc model-view-controller spring-form

我可以成功验证我的表单甚至返回错误。 当我的视图有一些选项需要填充来自控制器的数据时,我的问题就开始了。

当我做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";
            }

所以我的问题是如何在不影响验证错误的情况下传递数据?

1 个答案:

答案 0 :(得分:1)

我的猜测是,您的错误未被填充,因为您正在将模型属性的新实例直接添加到模型中。

尝试删除此行:

model.addAttribute("jconcorrente", new Jconcorrentes());
从if语句

并创建这样的新方法:

@ModelAttribute("jconcorrente")
public Jconcorrentes getJconcorrentes() {
    return new Jconcorrentes();
}

保持其他所有内容相同,它应该有效。