首先,我是一个相当新的春季mvc所以..
springmvc如何在向某个控制器发送post-request时找到正确的类来实例化并填充其对象属性。例如,假设我有这个类
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
类没有注释注意到
注意:我知道spring通过将它们的名称与表单字段名称相匹配来绑定User
对象属性
作为Spring Framework reference states in the respective section你应该使用:
@RequestBody
,如果你想让HttpMessageConverter
将你的HTTP请求反序列化到任何Java Object
@ModelAttribute
如果你想访问模型变量,例如也是出于你的HTTP请求。在您要与请求数据关联的参数上。