当前位置: 首页 > article >正文

JavaWeb——请求响应(5/8)-请求:日期参数json参数(使用场景及封装类型、接收方式、在 Postman 中传递、在服务端接收)

目录

日期参数

使用场景及封装类型

接收方式

JSON 格式参数

在 Postman 中传递

在服务端接收


日期参数

使用场景及封装类型

在项目前端表单页面当中,经常会遇到一些日期、时间类型的参数,比如像用户的生日、入职日期、操作时间这样的请求参数。

这些请求参数可以根据项目的需要,将其封装到日期类 Date 或者是 1.8 之后提供的 LocalDateTime 当中去。

接收方式

由于前端在传递日期类型参数的时候,格式多种多样,有可能是横杠分隔,有可能是斜杠分隔,有可能是年月日这种格式。

所以在服务端接收的时候,需要指定前端给传递过来的格式是什么样子的。

通过一个注解 @DateTimeFormat,然后里面声明一个属性 pattern,来指定前端传递的日期参数的格式。

如果指定的格式是 yyyy-MM-dd,那这就代表前端将来在请求的时候,就必须按照这个格式来传递对应的请求参数。然后方法形参的名称,也需要与请求参数的名称保持一致。

例如,先来打开 Postman,看一下准备好的请求。

这里发起的是一个 GET 请求,请求的时候传递了一个请求参数是 updateTime,然后传递的格式是指定的格式,请求的路径是 dateParam。

接下来参照这个请求用例来打开 IDEA,再去定一个方法  dateParam,

在这个方法形参当中,声明一个日期类型的对象来接收这个参数,这里就使用 JDK1.8 之后提供的 LocalDateTime。这个参数的名字和上面这一块一致,叫 updateTime,T 是大写。方法形参前面加上一个注解 @DateTimeFormat,来指定前端传递的日期格式是什么样子的,通过一个注解叫做 @DateTimeFormat,指定一个属性 pattern,来指定一下它的格式为 yyyy-MM-dd HH:mm:ss 这样。

然后可以直接将这个 updateTime 的值输出出来,再返回一个 OK 。这样程序就编写好了。

接下来重新启动一下应用来做一个测试,启动完成之后打开 postman,然后直接点击 send,发起请求,看一下这个日期类型的数据能不能成功的封装到 LocalDateTime 当中。

返回回来的是 OK,打开 IDEA看一下控制台,看到这个数据已经成功的封装到了 LocalDateTime 当中,而且接收到的这个数据和 Postman 当中传递的数据是一致的。

JSON 格式参数

在 Postman 中传递

在 Postman 发送请求的时候,如何传递 JSON 格式的参数呢?

如果要传递 JSON 格式的请求数据,需要将请求方式设置为 POST,因为这个 JSON 格式的请求数据是需要放在请求体当中携带到服务端的。

在 POST 请求当中,要设置请求体,需要点击的就是这个 body。而我们要在请求体当中传递 JSON 格式的数据,不要选择前面这几个,要选择的是 raw

选择了 raw 之后,要在后面这个下拉列表当中,我们选择传递的数据格式是 JSON

然后在空白区域中,就来填写 JSON 格式的请求参数。

前面在 JS 当中讲解 JSON 的时候讲到过,JSON 当中所有的 key 必须得使用双引号将其引起来,如果这一块没有加双引号,那它将会报错。

在服务端接收

接收 JSON 格式的数据,我们一般会通过实体对象来接收。

比如这里有一个实体对象 User,我们就可以通过 User 来接收传递过来的这个 JSON 格式的数据,但是它是有规范的,需要让 JSON 数据的键名与我们形参对象的属性名保持一致。

那这个 key 有 name、age、address,那这个属性就必须得有 name、age、address。

然后再看 address 属性,它又是一个对象,所以在 JSON 格式当中,这一块又是一对大括号,大括号里面又有两个 key,一个是 province,一个是 city,那对应的就是 address 对象当中的 province 属性和 city 属性。

最终我们就可以通过这个实体对象来接收并封装这个 JSON 格式的请求数据。

然后我们在方法形参当中,就可以来声明这样一个实体对象,然后需要在实体对象前面加上一个注解 @RequestBody。

加上这个注解之后,就可以将 JSON 格式的请求数据直接封装到这个实体对象当中。

例如,直接打开 IDEA 来演示一下。

在方法形参当中,需要声明一个对象来接收这个 JSON 格式的参数,这个对象直接声明一个 User。User 对象当中 name、age、address 这些属性都有,而且 address 这个属性,又是一个对象,里面又有 province 和 city 两个属性,是完全可以封装上的。

要想封装成功,前面需要加上一个注解 @RequestBody。这个注解就可以将 JSON 格式的请求数据封装到一个实体对象当中。接下来,直接将这个 User 对象直接输出出来,然后再返回一个字符串 OK。

这样程序就编写好了。接下来再次启动应用程序,来做一个测试,打开 postman 来做一个测试,我们直接点击这里的 send,

OK 已经响应回来了,我们来打开 IDEA 看一下控制台,

这些数据也都已经完全封装进来了。


END


学习自:黑马程序员——JavaWeb课程


http://www.kler.cn/a/411652.html

相关文章:

  • 文件系统的作用
  • idea_卸载与安装
  • 极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【二】
  • .Net与C#
  • .net的winfrom程序 窗体透明打开窗体时出现在屏幕右上角
  • 【Flink】快速理解 FlinkCDC 2.0 原理
  • Spring框架使用xml方式配置ThreadPoolTaskExecutor线程池,并且自定义线程工厂
  • jdk17-LongAddr 类increment()方法注释说明
  • c++中的lambda表达式!
  • 【H2O2|全栈】JS进阶知识(十一)axios入门
  • ChatGPT如何辅助academic writing?
  • 学习路之linux--多php版本下指定php版本执行命令
  • 基于Java Springboot华为数码商城交易平台
  • 数据结构初阶---复杂度
  • 大模型的实践应用31-基于通义千问大模型改进台风和海浪预测研究,利用机器学习与通义千问结合的思路实现对台风和海浪预测分析
  • Mongo数据库 --- Mongo Pipeline
  • 量子安全与经典密码学:一些现实方面的讨论
  • 分布式在线评测系统
  • 【机器视觉 OCR】适合Python开发的OCR工具:深入解析与实战应用
  • Python学习34天
  • 在Unity中实现物体动画的完整流程
  • HTTP 管道传输与多路复用
  • 数据结构与算法学习笔记----队列
  • 大数据面试SQL题-笔记02【查询、连接、聚合函数】
  • 大语言模型---Llama不同系列的权重参数文件提取;Llama-7B权重文件提取;Llama-8B权重文件提取;主要代码功能解析
  • (已解决)wps无法加载此加载项程序mathpage.wll