spring-mvc 如何找到正确的 class 实例化并用 POST-REQUEST 字段填充其数据
how spring-mvc finds the right class to instantiate and fill its data with POST-REQUEST fields
首先,我对 spring mvc 还很陌生,所以 ..
mvc 如何在向某个控制器发送 post 请求时找到正确的 class 实例化并填充其对象属性。
例如,假设我有这个 class
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;
}
}
和控制器class作为流动
@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
//.....
}
}
当我做 post-请求 http://localhost/myapp/user/add
以及与 User
class 属性同名的表单字段,
它工作正常。
但我的问题是
springmvc 如何找到 User
class 并实例化它?尽管 User
class 根本没有注释
注意:
我知道 spring 通过将它们的名称与表单字段名称
匹配来绑定 User
对象属性
作为 Spring Framework reference states in the respective section 你应该使用:
@RequestBody
,如果你想让 HttpMessageConverter
将你的 HTTP 请求反序列化为任何 Java Object
@ModelAttribute
如果您想访问模型变量,例如也超出了您的 HTTP 请求。
关于您要与您的请求数据相关联的参数。
首先,我对 spring mvc 还很陌生,所以 ..
mvc 如何在向某个控制器发送 post 请求时找到正确的 class 实例化并填充其对象属性。 例如,假设我有这个 class
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;
}
}
和控制器class作为流动
@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
//.....
}
}
当我做 post-请求 http://localhost/myapp/user/add
以及与 User
class 属性同名的表单字段,
它工作正常。
但我的问题是
springmvc 如何找到 User
class 并实例化它?尽管 User
class 根本没有注释
注意: 我知道 spring 通过将它们的名称与表单字段名称
匹配来绑定User
对象属性
作为 Spring Framework reference states in the respective section 你应该使用:
@RequestBody
,如果你想让HttpMessageConverter
将你的 HTTP 请求反序列化为任何 JavaObject
@ModelAttribute
如果您想访问模型变量,例如也超出了您的 HTTP 请求。
关于您要与您的请求数据相关联的参数。