springMVC框架的参数绑定之数据类型转换

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

 

伙伴们注意了!

小编在这里给大家送上关注福利:

转发本文,关注“速学Java”公众号即可领取小编精心准备的资料一份!

温馨提示:本文阅读需要4分钟,建议收藏后阅读!

各位小伙伴

今天我们分享的是

springMVC 的数据类型转换

还记得之前有小伙伴留言

想看这部分的内容

咱们开始吧!

ヾ(◍°∇°◍)ノ

springmvc的参数绑定

先来一起看下 springMVC 的流程图,在 HandlerAdapter (处理器适配器)在执行 Handler 之前会进行 springMVC 的参数绑定

参数绑定:

需要经过三个步骤:数据转化,数据格式化及数据校验.(请忽略上面的那个框框)

遵循 http 协议的 servletreqeust 传输的参数都是 String 类型,但是我们在控制层组件得到的参数都是我们制定或者我们需要的类型,比如  int,double,Object 

在这个过程中,springMVC 将 serlvetRequest 对象及目标方法传给 WebDataBindingfactory 创建一个 DataBinder 对象

如图: 

DataBinder 对象会调用 ConversionService 进行数据类型转换和数据格式化工作,然后调用 validator 组件进行数据的合法性校验.

理论大致了解了,现在咱们们来动手制作一个数据类型的转换器.毕竟实践出真知嘛!

自定义数据类型转化器

需求:

前台输入一个类似于 userName-loginName-sex-age 类型的值,handler 方法用 User 对象接收

前端页面代码:

controller 控制器代码:

通过查看源代码确认,springMVC 默认没有提供类似的格式转换器.我就不给大家演示怎么查看源代码了.

但是 springMVC 支持我们通过自定义转换器来实现一些特殊的参数转化,现在我们就来动手写一下数据类型转换器.

编写一个自定义转换器 实现 convert 接口.

注册自定义类型转化器 

发布项目测试一下,这是数据输入页面.

前端页面没什么效果,我们看一下控制台获取 userName 属性,证明我们的逻辑跑通了,数据类型转化完成.

现在利用断点查看源代码:

路径: DispatcherServlet.doService -> handlerAdapter -> WebBindingInitialize-> conversionservice/validator

红框框住的就是我们的自定制数据类型转换器了

自定义数据类型转化器二

我们再来做一个转换器.

需求: 

用户信息需要录入生日

编写一个输入用户生日的页面.

controller 控制器代码

此时,我们输入任何一个日期格式的时候 ,handler 方法都无法将 string 类型的参数转换为 Date 类型,这个时候我们可以自定义一个类型转换器去转换,轻车熟路.

编写一个时间自定义转换器 实现 convert 接口.

 

注册自定义类型转化器

发布项目测试一下:

控制台成功获取了用户的生日信息

注意:

对于这种常见的时间类型转化, SpringMVC 提供了注解

比如:时间类型,数值类型

现在我们来验证springMVC自带的数据类型转换器.通过注解的方式进行设置.

把之前的配置信息注释掉

同样的发布项目进行测试,我们的控制台还是接受到了用户的生日信息

怎么样?我写的还算清楚吧!

小伙伴们快来试一下

拜拜了

最后,想学习Java的小伙伴们!

关注速学java公众号就可以拿到一份我为大家准备的Java学习资料!

对Java感兴趣的小伙伴也可以加 小编V❤: suxuejava​​​​​​

 

hspice2016安装教程 试装系统:win10 64bit 安装包路径和安装路径最好都不要出现中文,一般选择默认安装在C盘。 1.解压安装包压缩文件。 2.以管理员身份运行hspice_vL-2016.03-2_win.exe。 3.点击“Next”。 4.选择“I accept”,然后点击“Next”。 5.点击“Next”。 6.一般默认安装路径即可,然后点击“Next”。 7.点击“Next”. 8.点击“Next”。 9.正... 阅读详情

相关推荐

保姆级教程:在Windows 11上用VSCode和Conda搞定Depth-Anything-3(含常见报错修复)

本文提供在Windows 11系统上使用VSCode和Conda配置Depth-Anything-3的完整教程,涵盖环境搭建、依赖安装、常见报错修复及深度图生成实战。特别针对CUDA与PyTorch版本匹配、Hugging Face镜像加速等关键问题提供解决方案,帮助开发者高效实现计算机视觉中的深度估计应用。

weixin_30338481的博客 328

Spring MVC请求参数类型转换

文章目录Converter(类型转换器)详解内置的类型转换器自定义类型转换器Formatter(数据格式化)详解内置的格式化转换器自定义格式化转换器内容出处: 对于 Spring MVC 框架而言,它必须将请求参数转换成值对象类中各属性对应数据类型类型转换是在视图与控制器相互传递数据时发生的。Spring MVC 框架对于基本类型(例如 int、long、float、double、boole...

惊鸿的技术博客 3698

模型算力需求估算

(Billion Parameters,简称B)和训练/推理的计算任务复杂度,结合硬件计算能力(例如每秒浮点运算次数,FLOPS)来估算。以下是详细的方法和公式说明,以及实际的计算示例。算力需求的估算依赖于参数量、模型架构及硬件性能,结合训练/推理场景的特定要求来计算。通过上述公式和示例,我们可以定量分析不同任务的算力需求,并合理配置硬件资源以优化运行效率。结论:推理任务相对较轻,单台H100可以在30秒内完成此任务。推理算力需求一般远低于训练,因为只需要执行前向传播。,可以将训练时间缩短到约。

形上得其象,形下合于数;阴阳自济,玄理自明。 8842

SpringMVC中的数据类型转换

1.首先来一张图,以及一段文字说明(PS:以下内容摘抄至“Spring+MyBatis企业应用实战”一书中的内容) SpringMVC框架将ServletRequest对象及处理方法的参数对象实例传递给DataBinder,DataBinder调用装配在Spring Web上下文中的ConversionService组件进行类型转换、数据格式化工作,并将ServletRequest中的消息填

Satisfy_555的博客 1685

Spring】详解Spring MVC中不同格式的POST请求参数数据类型转换过程

对于不同类型的请求格式,Spring有着不同的转换过程(从请求参数到方法参数)。如果是非raw请求,则需要实现一个自定义的Long->OffsetDatetime的Converter;如果是raw请求,则确保ObjectMapper中包含一个Long->OffsetDatetime的反序列化器,注册Jackon自带的JavaTimeModule即可。

Hello 4059

SpringMVC绑定参数类型转换的三种方式

一、实体类中加日期格式化注解 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createTime; 此种方式最简便,但是作用范围是局部的,只对对应的controller起作用 二、属性编辑器 在Spring3.1之前可以使用@InitBinder实现。 自定义springMVC的属性编辑器主要有两种方式: 一种是使用@I...

hongcaixia的博客 549

SpringMVC绑定参数类型转换

三种类型转换的方式 实体类中,属性加日期格式化注解 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") private Date departureTime; // 出发时间 属性编辑器,spring3.1之前 比较复杂,此处省略使用方法 类型转换器Converter 也就是自定义类型转化器(https://blog.c...

恩会的博客 448

java类型转化_springMVC框架参数绑定数据类型转换

原创: 李娜 温馨提示:本文阅读需要4分钟,建议收藏后阅读!各位小伙伴今天我们分享的是springMVC数据类型转换还记得之前有小伙伴留言想看这部分的内容咱们开始吧!ヾ(◍°∇°◍)ノspringmvc参数绑定先来一起看下 springMVC 的流程图,在 HandlerAdapter (处理器适配器)在执行 Handler 之前会进行 springMVC参数绑定参数绑定:需要经过三个步...

weixin_39844267的博客 154

SpringMVC参数绑定学习总结【前后端数据参数传递】

SpringMVC作为Controller层(等价servlet和struts中的action)专门用来处理页面的一些请求,然后将数据再通过视图返回给用户的,因此可见前后端数据参数传递相对springmvc的重要性,这篇文章将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。 1. 绑定机制 表单提交的数据都是k=v格式的,SpringMVC参数绑定过程是...

宜春 9368

SpringMVC数据绑定原理

什么是数据绑定? 将HTTP请求中的参数绑定到Handler业务方法的形参 这个参数非常重要。web项目其实就是客户端跟服务器之间的交互,客户端发送请求,服务器对请求做出响应。 客户端发送请求的时候,是需要携带参数过来的。比如查询课程的详细信息,前台就会将课程的id传给后台,后台通过id在数据库里面检索出该门课程的所有的详细信息,然后把这个结果集封装成一个模型数据,再把这个模型数据返回给前台做...

liuzhongyu 1241

springmvc——第二篇入门(请求参数篇)

1.知识讲解: 网页传入:username=123&password=123 mvc框架: 2.参数绑定与自定义参数类型转换: 表单提交的任何数据类型全部都是字符串类型,但是后台定义Integer类型,数据也可以封装上,说明 Spring框架内部会默认进行数据类型转换。 如果想自定义数据类型转换,可以实现Converter的接口 请求参数绑定说明 绑定机制 表单提交的数据都是k=v格式的 username=haha&password=123 SpringMVC

qq_41915149的博客 201

SpringMVC

Spring MVC默认情况下可以对基本类型进行类型转换,例如可以将String转换为Integer,Double,Float等。但是Spring MVC并不能转换日期类型java.util.Date),如果希望把字符串参数转换为日期类型,必须自定义类型转换器。

zyx1234321的博客 263

SpringMVC参数绑定类型和使用

目录 1、SpringMVC 参数绑定 2、默认支持的类型 3、基本数据类型绑定 4、包装数据类型绑定 5、POJO(实体类)类型绑定 参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller ?这在实际项目开发中也是用到的最多的,那么 SpringMVC参数绑定是怎么实现的呢?下面我们来详细的讲解。 1、SpringMVC 参数绑定   在 SpringMVC 中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过.

athga的博客 593

SpringMVC 数据绑定流程、参数绑定数据类型绑定、自定义数据类型

• 1. Spring MVC框架将 ServletRequest 对象及目标方 法的入参实例传递给 WebDataBinderFactory 实例,以创 建 DataBinder 实例对象 • 2. DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换、数据格式 化工作。将 Servlet 中的请求信息填充到入参对象中...

Hern(宋兆恒) 993

SpringMVC 参数绑定

1、SpringMVC 参数绑定SpringMVC 中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参。 这里涉及到参数绑定组件,那么什么是参数组件,这里可以先理解为将请求的数据转换为我们需要的数据称为参数绑定组件,也就是参数绑定转换器。SpringMVC 内置了很多参数转换器,只有在极少数情况下需要我们自定义参数转换器。 2、默认支持.

RedSnipers的博客 362

SpringMVC学习01:请求路径匹配和参数绑定

SpringMVC学习01:请求路径匹配和参数绑定SpringMVC入门案例案例程序案例执行流程分析SpringMVC核心组件请求路径匹配`@RequestMapping`注解: 匹配路径与处理器`@PathVaribale`注解: 绑定URL占位符,支持REST风格URLREST风格URL`@PathVaribale`注解的使用请求参数绑定参数绑定的示例`@RequestParam`注解: 为...

ncepu_Chen的博客 6074

SpringMVC框架的请求参数

SpringMVC框架的请求参数学习使用,其中包括解决请求参数中文乱码问题,获取原生ServletAPI对象以及类型转换器的使用。

AtlantisChina 341

springMvc参数绑定

参数绑定 目录· 1、SpringMVC 参数绑定· 2、默认支持的类型 3、基本数据类型绑定· 4、包装数据类型绑定· 5、POJO(实体类)类型绑定 6、复合POJO(实体类)类型绑定· 7、数组类型绑定· 8、List类型绑定· 9、Map类型绑定    参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller ?这在实际项目开发中也是用到的最多的,那么 SpringMVC参数绑定是怎么实现的呢?让老夫...

make_03的博客 353

SpringMVC学习笔记---SpringMVC参数绑定

目录 项目准备 一、SpringMVC默认支持的参数类型 1.ItemService接口 2.ItemServiceImpl实现类 3.ItemController 4.其他默认支持的参数类型 5.Model/ModelMap 二、SpringMVC简单参数绑定 1.支持的数据类型 2.@RequestParam 三、绑定普通pojo类型 1.页面定义如下: 2.p...

rosinante 710

SpringMVC的请求参数绑定

1. 请求参数绑定说明 1. 绑定机制 1. 表单提交的数据都是k=v格式的 username=haha&password=123 2. SpringMVC参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的 3. 要求:提交表单的name和参数的名称是相同的 2.支持的数据类型 ​ 1.基本数据类型和字符串类型 ​ 2.实体类型JavaBean) ​ 3.集

kaszxc的博客 278

基础框架 SpringMVC请求参数绑定

基础框架 SpringMVC请求参数绑定 一、绑定机制 1. 表单提交的数据都是k=v格式的 username=haha&password=123 2. SpringMVC参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的 3. 要求:提交表单的name和参数的名称是相同的 二、支持数据类型 1. 基本数据类型和字符串类型 2. 实体类型JavaBean) 3. 集合数据类型(List、map集合等) 三、基本数据类型和字符串类型 1. 提交表单的name和参数的名称是相同

靖节先生的博客 278

SpringMVC-请求参数绑定

SpringMVC请求参数绑定 1.参数绑定 1.1 绑定的机制 表单中请求参数都是key=value的,SpringMVC绑定请求参数的过程是通过把表单请求参数,作为控制器中方法参数进行绑定的。 例如: <a href="account/findAccount?accountId=10">查询账户</a> 中的参数是:accountId=10   控制器所对应的...

PopsiCola 279
上一篇: Java正则表达式的十大问题
下一篇: 关于Java异常的十大问题
suxue_java
博客等级 码龄8年 6粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值