Spring ModelAttribute не привязывает значения Tomcat 9, Spring 5 MVC - PullRequest
0 голосов
/ 06 декабря 2018

Я перешел с 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();
    }
}

Я мигрировал безКстати, не уверен, что еще мне здесь не хватает?

1 Ответ

0 голосов
/ 07 декабря 2018

Здесь не нужно никаких действий в теге form.Упоминание method в теге form.Так что измените на:

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

А также измените кнопку основного действия на:

<input type="submit" ... />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...