Spring MVC 数据绑定 绑定POJO类型 filter过滤器

概述

用户在传参的过程中肯定不单单是一个且同种类型的,可能同时会传入多个不同类型的参数数据,所以如果使用简单数据绑定,那是非常繁琐的。 所以针对多类型,多参数的请求。可以使用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>

真好!又学会了一个新知识!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值