目标
- 简单POJO数据绑定
- 自定义类型的POJO类型
思路
- 编写实体类以及需要获取的属性名,生成对应的getset方法和toString方法
- 新建一个新的jsp页面(params.jsp),里面存放的是表单,可以实现用户的输入功能
- 编写Controller类,实现表单提交到控制层处理的事务,并输入用户表单输入的值
实现
Account
public class Account implements Serializable {
//普通类型封装
private String username;
private String password;
private Double money;
private User user;//引用类型封装
//封装集合数据类型
private List<User> list;
private Map<String,User> map;
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;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public Map<String, User> getMap() {
return map;
}
public void setMap(Map<String, User> map) {
this.map = map;
}
@Override
public String toString() {
return "Account{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", money=" + money +
", user=" + user +
", list=" + list +
", map=" + map +
'}';
}
}
params.jsp
<form action="param/save" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
金额:<input type="text" name="money"><br>
<input type="submit" value="提交"><br>
</form>
ParamController
@Controller
@RequestMapping("/param")
public class ParamController {
//获取请求参数的值
@RequestMapping("/testParam")
public String testParam(String username,String password){
System.out.println("执行了");
System.out.println(username);
System.out.println(password);
return "success";
}
}
对应的spring-mvc.xml和web.xml里面的配置信息这里就不在重复了,请参考第一个SpringMVC
接下来就是演示阶段了,配置好Tomcat,运行
注意:地址栏要输入你对应的存放jsp目录,默认是寻找webapp的index.jsp页面
当我们前端输入框输入我想要的值时候
在控制台会进行打印
并且成功跳转成功页面(success.jsp)
到这里就实现了简单的POJO数据绑定
接下来实现包装POJO类型的数据
引言
使用简单POJO类型已经可以完成多数的数据绑定,但有时客户端请求中传递的参数会比较复杂。例如:在用户查询订单的时候,页面传递的参数可能包括订单编号、用户名称等信息,这就包含了订单和用户俩个对象的信息。如果将订单和用户的所有查询条件都封装到一个简单的POJO中,会显得很复杂,这时候我们可以采用包装POJO类型实现数据绑定
思路
- 在新建一个实体类User类,并将User作为Account类的属性
- 编写表单获取User属性值
User
package cn.xys.domin;
import java.io.Serializable;
/**
* @author 爱敲代码的小白
* @date 2021/1/8 14:30
*/
public class User implements Serializable {
private int age;
private String address;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"age=" + age +
", address='" + address + '\'' +
'}';
}
}
params.jsp
<%--前端输入框输入数据,绑定POJO类型将数据控制台输出--%>
<form action="param/save" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
金额:<input type="text" name="money"><br>
用户年龄:<input type="text" name="user.age"><br>
用户地址:<input type="text" name="user.address"><br>
<input type="submit" value="提交"><br>
</form>
注意:表单里面的文本框的name值对应的是实体类的属性名,且必须要相同,否则找不到对应属性的set方法
接下来就是运行的时候啦,启动Tomcat
控制台输出Account的数据
注明:这里的list和map为null的原因是表单没有设置该获取的文本框
提交之后也成功跳转到成功页面(success.jsp)
到这里我们实现了简单POJO的数据绑定和包装POJO类型的数据绑定