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课程