как spring-mvc находит подходящий класс для создания и заполнения своих данных полями POST-REQUEST - PullRequest
0 голосов
/ 22 марта 2019

Прежде всего, я новичок в весеннем MVC, так что ...

как springmvc находит подходящий класс для создания экземпляра и заполнения его свойств объекта при отправке пост-запроса на некоторый контроллер. например, давайте предположим, что у меня есть этот класс

package springmvc_test.user

public class User {
    private String username;
    private String password;
    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;
    }
}

и класс контроллера как текущий

@Controller
@RequestMapping(value = {"/user"} )
public class UserController {
    private List<User> users;

    @Autowired
    public UserController(List<User> users) {
        this.users = users;
    }

    @RequestMapping(value = "/add",method = POST)
    public String addUser(User user,Model m){
        users.add(user);
        //do some other stuf
        //.....
    }

}

когда я делаю пост-запрос для http://localhost/myapp/user/add наряду с полями формы, которые имеют те же имена, что и User свойства класса, работает нормально.

но мой вопрос таков как мог бы springmvc найти класс User и создать его экземпляр? хотя класс User вообще не помечен как замеченный

примечание: я знаю, что весна связывает свойства объекта User, сопоставляя их имена с именами полей формы

1 Ответ

0 голосов
/ 23 марта 2019

В качестве ссылки Spring Framework в соответствующем разделе вы должны использовать:

  • @RequestBody, если вы хотите, чтобы HttpMessageConverter десериализовал ваш HTTP-запрос на любую Java Object
  • @ModelAttribute, если вы хотите получить доступ к переменным модели, например, также из вашего HTTP-запроса.

для параметра, который вы хотите связать с данными вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...