【发布时间】:2020-10-22 00:32:17
【问题描述】:
这是我的 login.jsp 文件。
<form:form method="POST" action="checklogin" modelAttribute="log">
<form:label path="username">UserName: </form:label>
<form:input path="username" id="username" /><br /><br />
<br />
<form:label path="pswd">Password: </form:label>
<form:password path="pswd" id="password" /><br /> <br />
<br />
<input type="submit" id="btnLogin" value=login class="login" />
</form:form>
这是我的控制器
@RequestMapping(value = "/checklogin", method=RequestMethod.POST)
public String chklogin(@ModelAttribute Login login, Model mod) {
if (login.getUsername().equals("subro") && login.getpswd().equals("ss")) {
mod.addAttribute("log",login);
return "Home";
}
else {
return "Login";
}
}
我仍然收到错误消息 Bean 名称“log”的 BindingResult 和普通目标对象都不能用作请求属性
【问题讨论】:
-
请任何人澄清我的疑问,因为我无法理解双向绑定的主题。
-
在你的表单中你有
modelAttribute="log"在你的代码中有@ModelAttribute Login login。所以它应该被命名为login而不是log或在@ModelAttribute中指定name属性以匹配表单中的属性。 -
我已经更改了 modelAttribute="login" 但仍然无法正常工作。
-
因为在
@GetMapping中您可能也使用了错误的名称。 -
请不要多次问同一个问题!
标签: spring spring-mvc controller modelattribute two-way-binding