今天学习springmvc的时候,发现参数的类型是User的po类型,去了解了一下,原来是使用了pojo对象绑定参数值。
POJO 类型的数据绑定就是将所有关联的请求参数封装在一个POJO 中,然后在方法中直接使用该POJO 作为形参来完成数据绑定。
接下来用代码解释一下
这是po类User
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package com.po;
public class User { private Integer id; private String username; private Integer password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Integer getPassword() { return password; } public void setPassword(Integer password) { this.password = password; }
}
|
这是jsp中的表单 属性名分别为username和password
1 2 3 4 5
| <form action="${pageContext.request.contextPath}/registerUser" method="post"> 用户名:<input type="text" name="username" /><br /> 密   码:<input type="text" name="password" /><br /> <input type="submit" value="注册"/> </form>
|
这是一个接收用户注册信息的一个方法
1 2 3 4 5 6 7 8 9 10 11
|
@RequestMapping("/registerUser") public String registerUser(User user) { String username = user.getUsername(); Integer password = user.getPassword(); System.out.println("username="+username); System.out.println("password="+password); return "success"; }
|
这里的参数User user就是一个pojo类型
Spring MVC 会按请求参数属性名和 POJ0 属性名进行自动匹配,自动为该对象填充属性值。并支持级联属性。
这里的参数属性名就是表单的参数属性名,也就是 username和password ,SpringMVC 会自动的获取User类属性名与之相同的属性,并附上传递的参数,所以表单中的参数属性名必须得和po层的属性名一样。
运行一下程序

这样就方便不同类型的参数传递了。