Ни BindingResult, ни простой целевой объект для имени компонента 'user' не доступны в качестве атрибута запроса HTTP Status 500 - PullRequest
0 голосов
/ 29 октября 2018

Я создаю приложение, используя spring и hibernate.

Я думаю, что есть проблема с modelAttribute, но я не знаю, что не так.

Это мой код:

<html>
    <head>
        <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
        <title>Dziennik pracy</title>
    </head>
        <body>
             <form:form id="loginForm" modelAttribute="user" action="loginUser" method="post">

                       <form:input path="userName"/>
                       <form:input path="password"/>

            </form:form>
        </body>
    </html>

Мой контроллер:

@Controller
@RequestMapping("/user")
public class UserController {


    @RequestMapping("/showLogin")
    public String showLoginPanel() {
        return "login-user";
    }

    @RequestMapping("/loginUser" )
    public String loginUser(@ModelAttribute("user") User user, Model theModel) {
            theModel.addAttribute("user", new User());
            return "user-panel";
    }
}

Моя сущность

@Entity
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id")
    int id;

    @Column(name="user_name")
    String userName;

    @Column(name="password")
    String password;

и это ошибка:

error

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

В вашем JSP-файле вы используете метку пружинной формы, например,

 <form:form id="loginForm" modelAttribute="user" action="loginUser" method="post">

Здесь, чтобы отобразить форму пружины с сущностью пользовательской модели, вам нужно использовать атрибут commandName = "user" в теге формы, поэтому тег будет

<form:form id="loginForm" commandName="user" action="loginUser" method="post">

Попробуйте вышеуказанное решение.

0 голосов
/ 30 октября 2018

Попробуйте добавить объект BindingResult в сигнатуру метода.

public String loginUser(@ModelAttribute("user") User user,BindingResult result, Model theModel) {
            theModel.addAttribute("user", new User());
            return "user-panel";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...