Spring ModelAttribute未投标值Tomcat 9、Spring 5 MVC



我从Spring 3迁移到了5,并升级到了Tomcat 9。升级后无法将值从JSP获取到Controller@提交表单时,ModelAttribute没有绑定在JSP中输入的值。

JSP代码:

<form:form action="/login" modelAttribute="identity" id="loginForm" cssClass="clearfix nodisplay">
<div class="grouping text">
<label for="email">E-mail Address</label>
<form:input path="email" id="email" cssClass="regInput" cssErrorClass="error" />
<form:errors path="email" cssClass="errors" />
</div>
<div class="grouping text">
<label for="pwd">Password</label>
<form:password path="pwd" id="pwd" cssClass="regInput" cssErrorClass="error" autocomplete="off" />
<form:errors path="pwd" cssClass="errors" />
</div>
<div class="grouping remember">
<input type="checkbox" name="remember" id="remember" />
<label for="remember">Remember Me</label>
</div>
<div class="btns clearfix">
<span class="login-btn">
<input type="hidden" name="cookieExist" id="cookieExist" value="false" />
<button type="button" name="login" class="btn js-login-btn"><span class="pictos">K</span> Login</button>
</span>
<span class="password-forget">
<a href="/passwordreset">I forgot my password</a>
</span>
</div>
</form:form>

控制器代码

@Controller
public class LoginController {
@RequestMapping(method=RequestMethod.GET, value="/login")
public String loginGet(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap,
@ModelAttribute Identity identity){
// commented business logic code
return "login";
}

@RequestMapping(method=RequestMethod.POST, value="/login")
public String loginPost(HttpServletRequest request, HttpServletResponse response,
ModelMap modelMap, @ModelAttribute("identity") Identity identity, BindingResult bindingResult) {
//commented out business logic
return "dashboard";
}
@ModelAttribute("identity")
public Identity formBackingObject() {
return new Identity();
}
}

我没有使用webxml方式进行迁移,不确定这里还缺少什么?

form标记中无需执行任何操作。在form标记中提及method。因此:

<form:form modelAttribute="identity" method="post" id="loginForm" cssClass="clearfix nodisplay">

还可以将您的主要操作按钮更改为:

<input type="submit" ... />

最新更新