SpringMVC 400 Bad Request 问题

在提交表单时,发生400错误,并未进入save方法。java

@RequestMapping(value="/!save",method = RequestMethod.POST)
    public String save(@ModelAttribute("user") @Valid UserEntity user,
      Locale local,
      BindingResult results){
        String message = messageSource.getMessage("name.not.empty", null, local);
        System.out.println(message);
        if(results.hasErrors())
            return "/user/add";
        return "redirect:/user/list";
    }

经google后,发现大可能是由于表单数据类型与model不匹配,形成。
可是,通过一再减小model内容后,提交表单,问题依旧。
终于在iteye论坛发现:springMVC参数顺序不一样致使异常spring

约定的BindingResult必须紧随@valid以后。    
mvc

原来我这里的400是这个缘由致使的。如下为正确顺序:app

@RequestMapping(value="/!save",method = RequestMethod.POST)
    public String save(@ModelAttribute("user") @Valid UserEntity user,
      BindingResult results,
      Locale local){
        String message = messageSource.getMessage("name.not.empty", null, local);
        System.out.println(message);
        if(results.hasErrors())
            return "/user/add";
        return "redirect:/user/list";
    }

在解决问题以后,作一下总结:
springmvc形成400错误的缘由如今知道的有如下两点:google

一、提交表单数据类型与model不匹配
二、方法参数顺序不正确
还有别的场景吗?但愿你们补充。
code

相关文章
相关标签/搜索