【Spring】— Spring MVC简单数据绑定(二)

news2024/11/17 1:38:47

接上文:【Spring】— Spring MVC简单数据绑定(一)

目录

      • 2.3绑定POJO类型

2.3绑定POJO类型

在使用简单数据类型绑定时,可以很容易地根据具体需求来定义方法中的形参类型和个数,然而在实际应用中,客户端请求可能会传递多个不同类型的参数数据,如果还使用简单数据类型进行绑定,就需要手动编写多个不同类型的参数,这种操作显然比较烦琐。此时就可以使用POJO类型进行数据绑定。

POJO类型的数据绑定就是将所有关联的请求参数封装在一个POJO中,然后在方法中直接使用该POJO作为形参来完成数据绑定。

【示例】接下来通过一个用户注册案例来演示POJO类型数据的绑定,具体实现步骤如下。

步骤01 在src目录下创建一个com.ssm.po包,在该包下创建一个User类来封装用户注册的信息参数。

package com.ssm.po;
//用户类User
public class User {
    private Integer id;
    private String username;
    private String 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 String getPassword() {
        return password;
    }
    public void setPassword(String password){
        this.password=password;
    }

}

步骤02 在控制器 UserController类中编写向注册页面跳转和接收用户注册信息的方法,代码如下所示。

  //向注册页面跳转
    @RequestMapping("/toRegister")
    public String toRegister() {
        return "register";
    }

    //接受用户注册信息
    @RequestMapping("registerUser")
    public String registerUser(User user) {
        String username = user.getUsername();
        String password = user.getPassword();
        System.out.println("username" + username);
        System.out.println("password" + password);
        return "success";
    }

步骤03 在WEB-INF目录下创建一个用户注册页面register.jsp,在该界面中编写用户注册表单,表单需要以POST方式提交,并且在提交时会发送一条以“registerUser”结尾的请求消息,如文件12.6所示。

在这里插入图片描述

注意
在使用POJO类型数据绑定时,前端请求的参数名(本例中指form表单内各元素的name属性值)必须与要绑定的POJO类中的属性名一样,这样才会自动将请求数据绑定到POJO对象中,否则后台接收的参数值为null。

步骤04 发布并启动项目,在浏览器中访问地址http://localhost:8080/chapter12/toRegister,就会跳转到用户注册页面register.jsp。

在这里插入图片描述

填写对应的用户名和密码,然后单击“注册”按钮即可完成模拟注册功能。这里假设用户注册的用户名和密码分别为“jack”和“jack_123”,当单击“注册”按钮后,浏览器会跳转到结果页面。

使用POJO类型同样可以获取前端请求传递过来的数据信息,这就是POJO类型的数据绑定。

注意

在前端请求中,难免会有中文信息传递,用户名和密码输入框中输入用户名“张三”和密码“123”时,虽然浏览器可以正确跳转到结果页面,但是在控制台中输出的中文信息会出现乱码。为了防止前端传入的中文数据出现乱码问题,可以使用Spring提供的编码过滤器来统一编码。要使用编码过滤器,只需要在web.xml中添加如下代码。

在这里插入图片描述

上述代码中,通过<filter-mapping>元素的配置会拦截前端页面中的所有请求,并交由名称为CharacterEncodingFilter的编码过滤器类进行处理。在<filter>元素中,首先配置了编码过滤器类org.springframework.web.filter.CharacterEncodingFilter,然后通过初始化参数设置统一的编码为UTF-8。这样所有的请求信息都会以UTF-8的编码格式进行解析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java学习记录之MySql二

1 mysql回顾 1.1 DDL 数据定义语言&#xff1a;结构  数据库database create database 数据库名称 character set 字符集 [collate 比较]; drop database 数据库名称; alter database 数据库名称 character set 字符集 …;  表 create table 表名(字段描述 , … ); 字段描述…

优雅地在高版本Android将文件保存到磁盘

Android对于文件存储的限制正在日趋严格。事实上&#xff0c;从Android 11&#xff08;Android R&#xff09;开始&#xff0c;那些传统的文件保存和读取方式统统失效了。 而高版本Android中存/取文件操作&#xff0c;百度到的内容是可行的&#xff0c;但是非常麻烦&#xff0c…

AIGC时代,基于云原生 MLOps 构建属于你的大模型(下)

为了满足企业在数字化转型过程中对更新迭代生产力工具的需求&#xff0c;灵雀云近日推出了Alauda MLOps 解决方案&#xff0c;帮助企业快速落地AI技术、实现智能化应用和服务。 AIGC大模型已成为企业创新引擎 随着ChatGPT的爆火&#xff0c;越来越多的人考虑使用AI来提升我们日…

python机器学习——回归模型评估方法 回归算法(线性回归、L2岭回归)

目录 回归模型评价方法【回归】线性回归模型1.线性模型2.线性回归3.损失函数&#xff08;误差大小&#xff09;4.解决方法1) 最小二乘法之正规方程2) 最小二乘法之梯度下降 5.代码实现5.模型保存与加载6.特点 实例&#xff1a;波士顿房价【回归】带有L2正则化的岭回归 回归模型…

C++初阶之类和对象(上)

类和对象&#xff08;上&#xff09; 1、面向过程和面向对象初步认识2、类的引入3、类的定义4、类的访问限定符及封装4.1 访问限定符4.2 封装 5、类的作用域6、类的实例化7、类对象模型7.1 如何计算类对象的大小 8.this指针8.1 this指针的引出8.2 this指针的特性8.3. C语言和C实…

Python开发工具PyCharm 2023.1发布,这些新功能都值得期待!

PyCharm 2023.1 现已正式发布&#xff01;今年的第一个主要版本带来了对远程Jupyter Notebook的支持、对新UI的增强、改进的泛型类型推断等。 JetBrains PyCharm是一种Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外&#xff0…

SpringBoot 使用 Testcontainers 进行容器化集成测试

SpringBoot 使用 Testcontainers 进行容器化集成测试 容器化集成测试是测试应用程序与其依赖项之间的集成&#xff0c;其中依赖项以容器的形式运行。SpringBoot提供了Testcontainers来测试应用程序与依赖项之间的集成&#xff0c;本文将介绍如何使用Testcontainers进行容器化集…

详细解说一次性低代码和持续化低代码的关键区别在哪里

为什么很多开发团队吐槽低代码开发平台&#xff0c;其中大致归结了几个方面的原因&#xff1a; 1、使用过后会降低对技术的依赖度&#xff0c;工具人的倾向更加严重 2、目前大部分的低代码都是一次性的低代码&#xff0c;仅仅是在第一次构建模型的时候&#xff0c;可以生成一…

CDC介绍

CDC介绍 1 CDC Change Data Capture&#xff1a;定义了一种场景&#xff0c;即识别并捕获数据库表中数据的变更&#xff0c;并交付给下游进一步处理。CDC是对针对行级数据记录的。其中数据的变更信息&#xff0c;即 CDC 的数据结构&#xff0c;包括变更是什么样的操作&#x…

《JDK8特性深入讲解》学习笔记

Lambda表达式 如果不适用lambda表达式的话&#xff0c;可以使用匿名内部类&#xff0c;但是代码会显得有点多 lambda表达式其实就是匿名内部类 Lambda表达式简化了匿名内部类的使用&#xff0c;语法更加简单。 语法规则 (参数类型 参数名称) -> {代码体; } Lambda表达…

Unreal 5 实现Data Table 数据表格的使用

数据是一个游戏重要的组成部分&#xff0c;按分工&#xff0c;数据会交由策划去配置&#xff0c;所以&#xff0c;你的数据不可能直接写到蓝图里面&#xff0c;而是有一个专门的数据表格去配置。 大家通用的方式是策划在Excel内编辑完成&#xff0c;然后通过工具生成游戏需要使…

RabbitMQ安装以及SpringBoot整合RabbitMQ

SpringBootMQ整合Rabbit RabbitMQ安装以及SpringBoot整合 1、Docker安装RabbitMQ #拉取rabbitmq镜像 docker pull rabbitmq#启动RabbitMQ docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq#安装图形化插件 #进入容器 docker exec -i…

ubantu16.04搭建Qt环境

目录 ubantu16.04搭建Qt环境 下载opensource 安装qmake 安装g以及依赖库 配置环境 编译原码 安装make 查看qmake是否安装 配置环境变量 qmake编译c/c代码 安装qtcreator Linux编译Qt代码 ubantu16.04搭建Qt环境 下载opensource 「下载 qt-everywhere-opensource-s…

用于配电室的内部环境监控系统设计与产品选型

摘要&#xff1a;配电室是配电系统的重要组成部分&#xff0c;影响着电力用户的用电需求&#xff0c;需要保障其安全、可靠运行。针对配电室内部环境进行了深入分析&#xff0c;设计了一种内部环境监控系统。通过该系统可以采集配电室内部的温度、湿度、液位、SF6气体和烟雾&am…

伪随机码详解

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 伪随机码伪随机序列…

期末复习【网络安全】

期末复习【网络安全】 前言推荐期末复习第1章 引言1.1 计算机安全概念1.2 OSI安全体系结构 61.3 安全攻击 71.3.1 被动攻击1.3.2 主动攻击 第2章 对称加密和消息机密性2.1 对称加密原理 232.1.3 Feistel密码结构 25 2.2 对称分组加密算法 272.2.1 数据加密标准2.2.2 三重DES2.2…

【C#】并行编程实战:任务并行性(下)

本章继续介绍任务并行性&#xff0c;因篇幅所限&#xff0c;本章为下篇。 6、处理任务异常 所有优秀的程序员都擅长高效地处理异常&#xff0c;这也是并行编程最重要的方面之一。任务并行库&#xff08;TPL&#xff09;提供了一种高效的设计来处理异常&#xff1a;任务中发生的…

山西电力市场日前价格预测【2023-06-26】

日前价格预测 预测明日&#xff08;2023-06-26&#xff09;山西电力市场全天平均日前电价为395.92元/MWh。其中&#xff0c;最高日前价格为477.34元/MWh&#xff0c;预计出现在19: 00。最低日前电价为309.90元/MWh&#xff0c;预计出现在13: 00。以上预测仅供学习参考&#xff…

Android中的EventBus变迁史

Android中的EventBus变迁史 什么是EventBus&#xff1f; EventBus是软件架构中使用的一种通信机制&#xff0c;用于促进系统内不同组件或服务之间的事件交换。它为组件提供了一种发布和订阅事件的方法&#xff0c;从而实现松散耦合和异步通信。 EventBus充当中央集线器或消息…

SpringBoot 性能优化的主要组件及特点

SpringBoot 性能优化的主要组件及特点 简介 在开发应用程序时&#xff0c;性能是一个非常重要的因素。如果应用程序的性能不佳&#xff0c;那么它可能会影响用户的体验&#xff0c;甚至会导致系统崩溃。而在 SpringBoot 应用程序中&#xff0c;我们可以通过一些组件来优化应用…