HTTP状态400客户端发送的请求在语法上不正确

时间:2015-12-21 19:25:09

标签: spring spring-mvc model-view-controller http-status-code-400

这是我的控制器

@RequestMapping("/offercreated")

 public String offerCreated(@Valid Offer offer, Model model, BindingResult  result) {

 if (result.hasErrors()) {

 return "createoffer";

 } else {

 System.out.println("form validated");

 return "offercreated";

 }

我的bean是

@Size(min = 5, max = 45)
    private String name;

当我提供5到45个字符的名称时,将验证表单。但是当表单未经过验证时,我收到400状态错误报告。我不知道为什么我得到错误。请在这里需要帮助

2 个答案:

答案 0 :(得分:1)

BindingResult参数必须遵循立即验证的参数。这里描述了:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

  

org.springframework.validation.Errors / org.springframework.validation.BindingResult前面的命令或表单对象的验证结果(紧接在前的方法参数)。

答案 1 :(得分:0)

当我将控制器参数更改为Model然后提供其工作时,哇!

@RequestMapping(" / offercreated&#34)

public String offerCreated(模型模型,@ Value报价,BindingResult结果){

if(result.hasErrors()){

return" createoffer";

}其他{

System.out.println("表格验证");

return" offercreated";

}

有人可以解释为什么会这样吗?我很困惑!