首页 > 解决方案 > spring-mvc 如何找到正确的类来实例化并使用 POST-REQUEST 字段填充其数据

问题描述

首先,我对spring 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该类根本没有注释

注意:我知道springUser通过将它们的名称与表单字段名称匹配来绑定对象属性

标签: javaspringspring-mvcdata-bindinghttp-post

解决方案


正如相应部分中的 Spring Framework 参考所述,您应该使用:

  • @RequestBody, 如果你想让HttpMessageConverter你的 HTTP 请求反序列化到任何 JavaObject
  • @ModelAttribute如果你想访问模型变量,例如你的 HTTP 请求。

在要与请求数据关联的参数上。


推荐阅读