Как исправить ModelAttributes возвращаемое значение NULL? - PullRequest
0 голосов
/ 03 апреля 2019

Я настраиваю весенний проект, я хочу сделать регистрацию пользователя функциональность.Я хочу передать пользовательские данные в контроллер пружины и получить данные с помощью @ModelAttribute, но ModelAttribute возвращает некоторые значения правильно, а некоторые нет.

это мой пользовательский компонент.

public class User {

    private Long id;
    private String userName;
    private String password;
    private String email;
    private Date regdate;
    private String loginId;

    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }



    public String getUsername() {
        return userName;
    }
    public void setUsername(String username) {
        this.userName = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public Date getRegdate() {
        return regdate;
    }
    public void setRegdate(Date regdate) {
        this.regdate = regdate;
    }
    public String getLoginId() {
        return loginId;
    }
    public void setLoginId(String loginId) {
        this.loginId = loginId;
    }

}

это форма, которую я хочу отправить.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="register" method="post" modelAttribute="user">
<label for="loginid">ID:</label> 
<input type="text" name="loginid">
<label for="password">password :</label>
<input type="password" name="password">
<label for="username">username :</label>
<input type="text" name="username">
<label for="email">e-mail :</label>
<input type="text" name="email">

<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>

, поэтому я распечатал атрибут модели для вывода данных.

System.out.println("loginid :"+user.getLoginId()+"username :"+user.getUsername()+" password :"+ user.getPassword());

и вернул loginid: null username: user password: user

это контроллер, который я получаю данные.Я пытался получить данные с помощью аннотации ModelAttribute

@RequestMapping(value="/register", method=RequestMethod.POST)
    public String createUser(@ModelAttribute User user, HttpServletRequest request, Model model) {
        String ip = request.getRemoteAddr().toString();
        System.out.println("loginid :"+user.getLoginId()+"id :"+user.getId()+"username :"+user.getUsername()+"password :"+ user.getPassword());
        try {
        userService.addUser(user,ip);
        return "registrationsuccess";
        }catch(Exception e) {
            e.printStackTrace();
        }

        return "registrationfail";
    }

1 Ответ

0 голосов
/ 03 апреля 2019

Попробуйте посмотреть здесь Может быть, у вас нет RequestMapping в вашем методе Post?

PS

Попробуйте изменить

<form action="register" method="post" modelAttribute="user">
<label for="loginid">ID:</label> 
<input type="text" name="loginid">
<label for="password">password :</label>
<input type="password" name="password">
<label for="username">username :</label>
<input type="text" name="username">
<label for="email">e-mail :</label>
<input type="text" name="email">

<input type="submit" name="submit" value="submit"/>
</form>

на

<form:form method="post" action="/register" modelAttribute="user">
    <form:label path="loginid">ID:</form:label>
    <form:input path="loginid" />

    <form:label path="password">password:</form:label>
    <form:input path="password" />
     ...
    <input type="submit" value="submit" />
</form:form>

В вашем контроллере попробуйте изменить

public String createUser(@ModelAttribute User user, HttpServletRequest request, Model model) 

на

public String createUser(@ModelAttribute("user") User user, HttpServletRequest request, Model model)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...