嗨,我正面临一个问题,并在互联网上四处寻找,但仍然无法找出根本原因。我正在发布我的代码片段,请帮助我,因为我是 spring 3 的新手。我在表单中使用modelAttribute,我希望在控制器中所有来自请求的值都应该支持在对象中,以便我可以执行验证和其他商业逻辑。我知道只有我的控制器有错误。
1) index.jsp
<form:form action="login" method="POST" modelAttribute="login">
<table>
<tr><td>User Id:</td><td><form:input path="userId"/></td></tr>
<tr><td>Password:</td><td><form:password path="userPassword"/></td></tr>
<tr><td></td><td><input type="submit" value="Login"/></td></tr>
</table>
</form:form>
2) 控制器
@RequestMapping(value="/login/", method=RequestMethod.POST)
public String login(@ModelAttribute("login") @Valid Login login,BindingResult result)
{
System.out.println("We have entered into controller class");
if(result.hasErrors())
{
System.out.println("Errors:"+result.getFieldError("userReject"));
return "redirect:/login";
}
else
{
return "home";}
}
}
3) JBoss 日志
04:35:29,067 ERROR [org.springframework.web.servlet.tags.form.InputTag] (http--0.0.0.0-8090-1) Neither BindingResult nor plain target object for bean name 'login' available as request attribute: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'login' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141) [spring-webmvc-3.0.5.Release.jar:3.0.5.RELEASE]