概述
用户在传参的过程中肯定不单单是一个且同种类型的,可能同时会传入多个不同类型的参数数据,所以如果使用简单数据绑定,那是非常繁琐的。 所以针对多类型,多参数的请求。可以使用POJO类型进行数据绑定,POJO类型的数据绑定就是将所有关联的请求参数封装在一个POJO中,然后在使用方法中直接使用该POJO作为形参来完成数据绑定。
来自度娘的解释:
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
用户注册案例,演示POJO数据绑定。
首先创建一个用户POJO类 (个人理解的就是DAO层的User类)
private String loginname;
private String password;
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String loginname, String password) {
this.loginname = loginname;
this.password = password;
}
public User(){
super();
}
在控制器中编写注册方法 创建一个User对象,当用户输入参数信息时,该控制器就可以获取用户所输入的信息。
创建用户注册页面
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%--
Created by IntelliJ IDEA.
User: 陈
Date: 2022/11/16
Time: 11:09
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册页面</title>
</head>
<body>
//此处method选择输入方式,利用text我们可以用post方式获得数据。
<form action="${pageContext.request.contextPath}/registerUser" method="post">
//同时各个属性name绑定的参数,必须是POJO中定义的参数名称,写错的话,就无法进法将通过Post方式获取参数值。
用户名:<input type="text" name="loginname"><br/>
密码:<input type="text" name="password"><br/>
<input type="submit" value="注册">
</form>
</body>
</html>
结果页面:
同时我们也设置了一个过滤器,防止中文编码乱码问题
<!-- 配置过滤器-->
<filter>
<!-- 指出过滤器的地址和定义名称-->
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<!-- 设置UTF-8格式-->
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
真好!又学会了一个新知识!