java.lang.IllegalStateException:BindingResult和普通目标对象都不能作为请求属性使用

java.lang.IllegalStateException:BindingResult和普通目标对象都不能作为请求属性使用,java,spring,spring-mvc,Java,Spring,Spring Mvc,当我尝试提交(Spring)表单查询时: 我不明白这个信息 控制器 @RequestMapping(value = "beerbean", method = RequestMethod.GET) public String showForm(@ModelAttribute("beerbean") BeerBean beerbean){ return "addbeerform"; } @RequestMapping(value = "beerbean", method = Requ

当我尝试提交(Spring)表单查询时:

我不明白这个信息

控制器

@RequestMapping(value = "beerbean", method = RequestMethod.GET)
public String showForm(@ModelAttribute("beerbean") BeerBean beerbean){
    return "addbeerform";
}



@RequestMapping(value = "beerbean", method = RequestMethod.POST)
public String newBeer(Model model, @Valid @ModelAttribute BeerBean beerbean,
        BindingResult bindingResult){
    if(bindingResult.hasErrors()){
        return "addbeerform";
    }
    model.addAttribute("beani", beerbean);
    return "showBeer";
}
addbeerform.jsp

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<form:form commandName="beerbean" action="${pageContext.request.contextPath}/app
     /beerbean" method="POST">

     <form:input path="name" /><form:errors path="name" /><br/>
     <form:input path="id" /><form:errors path="id" /><br/>

     <input type="submit">
</form:form>




当字段中没有错误时,它工作并转到“showBeer”,但当出现错误时,它只是崩溃。我也有一个BeerBean类,它实现了Serializable等功能,但我认为解决方案并不存在(那里的变量像表单中的参数一样写入,input path=“name”转到私有字符串名称等)。

我建议显式指定模型属性的名称:

public String newBeer(
    Model model,
    @Valid @ModelAttribute("beerbean") BeerBean beerbean,
    BindingResult bindingResult
) {