SpringMVC 400 Bad Request 问题

来源:互联网 发布:类似按键精灵的软件 编辑:程序博客网 时间:2024/04/29 11:35

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

@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参数顺序不同导致异常

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

原来我这里的400是这个原因导致的。以下为正确顺序:

@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错误的原因现在知道的有以下两点:

1、提交表单数据类型与model不匹配
2、方法参数顺序不正确

0 0
原创粉丝点击