spring-mvc如何找到正确的类来实例化并使用POST-REQUEST字段填充其数据

时间:2019-03-22 20:04:08

标签: java spring spring-mvc data-binding http-post

首先,我对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类属性同名的表单字段, 效果很好。

但是我的问题是 尽管User类根本没有注解

,但springmvc怎么能找到User类并将其实例化?

注意: 我知道spring通过将其名称与表单字段名称匹配来绑定User对象属性

1 个答案:

答案 0 :(得分:0)

作为Spring Framework reference states in the respective section,您应该使用以下任一方法:

  • @RequestBody,如果要让super将您的HTTP请求反序列化到任何Java HttpMessageConverter
  • @ModelAttribute,如果您想访问模型变量,例如也来自您的HTTP请求。

要与您的请求数据关联的参数。