ModelAndView Spring - PullRequest
       20

ModelAndView Spring

0 голосов
/ 28 июня 2018

подробности:

Я тестирую свой первый весенний проект, я не могу получить данные формы в компоненте поддержки. Вот мой код, пожалуйста, помогите мне выполнить это.

Welcome.jsp - моя целевая страница, я хочу взять идентификатор пользователя и пароль и показать на странице userInfo.

Контроллер: -

package com.accounts.common.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.accounts.common.backingBean.LoginBackingBean;
/**
 * Handles requests for the application welcome page.
 */
@Controller
public class WelcomeController {
    /**
     * Simply selects the welcome view to render by returning void and relying
     * on the default request-to-view-translator.
     */
    @RequestMapping(value= "/welcome" ,method = RequestMethod.GET)
    **public ModelAndView welcome() {

        return new ModelAndView("welcome", "userForm", new LoginBackingBean());

    }**

    @RequestMapping(value="/userInfo" ,method = RequestMethod.POST)
    public String userInfo(@ModelAttribute("userForm")LoginBackingBean login ,
            ModelMap model){
        model.addAttribute("userId" , login.getUserId());
        model.addAttribute("password" , login.getPassword());
        return "userInfo";
    }
}

Вот код для приветствия JSP: - Я добавляю только снимок

<body>
<form id=login method="POST" action="/AccountingSW/userInfo" >
<div align="center">
<table>
<tr>
<td>User ID  : </td>
<td> <input type="text"> </td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value ="Login"> 
</td>
</tr>
<tr>
<td colspan="2" align="center">
<label style="font-size: 10;color: red">Already existing Member</label>
</td>
</tr>
<tr><td colspan="2" align="center">OR</td></tr>
<tr><td colspan="2" align="center">
<input type="submit" value ="SignUp"></td></tr>
<tr>
<td colspan="2" align="center">
<label style="font-size: 10;color: red">New Member</label>
</td>
</tr>
</table>
</div>
</form >
</body>
</html>

Вот код для UserInfo JSP:

Я помещаю только снимок того, что содержит jsp

<title>Hello ${userForm.userId}</title>
</head>
<body>
<h2>User Info</h2>
<table>
    <tr>
        <td>UserId</td>
        <td>${userForm.userId}</td>
    </tr>
    <tr>
        <td>Password</td>
        <td>${userForm.password}</td>
    </tr>
</table>
</body>
</html>

Вот код для бэк-бина: -

package com.accounts.common.backingBean;
public class LoginBackingBean {
    private String userId;
    private String password;

    /*      Getter and setters generated */

}

Я могу выполнить jsp (s), но идентификатор пользователя и пароль не установлены

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

В вашем welcome.jsp вы пропускаете имя свойства на входах:

<td> <input type="text" name ="userId"> </td>
<td><input type="password" name="password"> </td>
0 голосов
/ 28 июня 2018

Пожалуйста, попробуйте изменить с

public String userInfo(@ModelAttribute("userForm")LoginBackingBean login

до

public String userInfo(@ModelAttribute("loginBackingBean")LoginBackingBean login

как документ @ ModelAttribute

Имя атрибута модели по умолчанию выводится из объявленного тип атрибута (то есть тип параметра метода или тип возвращаемого метода), на основе неквалифицированного имени класса: например, "orderAddress" для класса "mypackage.OrderAddress" или "orderAddressList" для "Список".

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ModelAttribute.html#name--

...