时间请求参数、响应

        (7)时间请求参数

  • 1.默认格式转换

    • 控制器

    @RequestMapping("/commonDate")
    @ResponseBody
    public String commonDate(Date date){System.out.println("默认格式时间参数 date ==> "+date);return "{'module' : commonDate}";
    }
    • 发送请求

    • f31926eb8e8d4673912302769c4ec0fa.png

    • a79f9405ccbe41f3917908a938043c16.png

    • 采取默认格式转换无需其它操作,但是对字符串格式有要求只能是yyyy/MM/dd HH:mm:ss

    • 5a72d0e5bfe4412182ebf5ee9d882847.png

  • 2.自定义时间格式转换

    • 在SpringMVCConfig配置类中开启注解支持@EnableWebMvc

    @Configuration
    @ComponentScan("dateParam")
    @EnableWebMvc
    public class SpringMVCConfig {...}
    • 在控制器参数上使用@DateTimeFormat(pattern="yyyy&MM&dd HH:mm:ss")==》pattern的值问自定义参数,&==》日期任意连接符

    @RequestMapping("/customDate")
    @ResponseBody
    public String customDate(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date,@DateTimeFormat(pattern = "yyyy-MM-dd HH.mm.ss") Date date2) {System.out.println("自定义格式时间参数 date(yyyy-MM-dd) ==> " + date);System.out.println("自定义格式时间参数 date(yyyy-MM-dd HH.mm.ss) ==> " + date2);return "{'module' : customDate}";
    }
    • 发送请求

    • a054adaedfaa453585e49e03705627e9.png

(8)内部实现原理

  • SpringMVC实现下列自动转换

    • 前端传递字符串,后端使用日期Date接收

    • 前端传递JSON数据,后端使用对象接收

    • 前端传递字符串,后端使用Integer接收

    • 后台需要的数据类型有很多中

    • 在数据的传递过程中存在很多类型的转换

  • 如何实现自动转换的呢?

    • SpringMVC中提供了很多类型转换接口和实现类

    • 在框架中,有一些类型转换接口,其中有:

    • (1) Converter接口

/**
*   S: the source type
*   T: the target type
*/
public interface Converter<S, T> {@Nullable//该方法就是将从页面上接收的数据(S)转换成我们想要的数据类型(T)返回T convert(S source);
}
  • 注意:Converter所属的包为org.springframework.core.convert.converter

    • Converter接口的实现类

    • c5e49cee0e5542ef8aa9168cba7063c0.png

  • 框架中有提供很多对应Converter接口的实现类,用来实现不同数据类型之间的转换,如:

  • 请求参数年龄数据(String→Integer)

  • 日期格式转换(String → Date)

    • (2) HttpMessageConverter接口

      • 该接口是实现对象与JSON之间的转换工作

    ※※※注意:SpringMVC的配置类把@EnableWebMvc当做标配配置上去,不要省略※※※

(9)响应

  • 1.响应页面

    • 控制器

    @RequestMapping("/toJumpPage")
    @RequestBody
    public String toJumpPage(){return "index.jsp";
    }
    • 发送请求

    • cce4241c82044d19b60e8dcd68da50b7.png

    • 使用@RequestBody注解后请求响应的是字符串,并非页面,这是由于页面响应返回的是目标路径,注解后它不会解析其路径

    • a8e4edb49b29435da0d57c5b6d596844.png

  • 2.响应纯文本

    • 控制器

    //@RequestMapping("/toText")
    @RequestMapping(value = "/toText",produces =  {"text/html;charset=UTF-8;", "application/json;"})
    @ResponseBody
    public String toText(){return "纯文本";
    }
    • 发送请求

    • 540cbcd0ba4346eb8eefa76dc0b8dac5.png

    • 响应中文乱码==》在@RequestMapping上使用属性produces设置编码

    • 0b181dddf4434859b71f389ac875aaea.png

  • 3.响应POJO对象

    • 控制器

    @RequestMapping("/toPojo")
    @ResponseBody
    public User toPojo(){return new User("模拟数据库用户1",18);
    }
    • 发送请求

    • d5402f8a1b39426ab8c1aaa188041cb0.png

  • 4.响应POJO对象集合

    • 控制器

    @RequestMapping("/toPojoList")
    @ResponseBody
    public List<User> toPojoList(){User user = new User("模拟数据库用户1", 18);User user2 = new User("模拟数据库用户2", 19);User user3 = new User("模拟数据库用户3", 20);ArrayList<User> list = new ArrayList<User>();list.add(user);list.add(user2);list.add(user3);return list;
    }
    • 发送请求

    • 9da5425d28794125bae42d2ebd8696b0.png

 

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

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

相关文章

设计模式:4、命令模式(双重委托)

目录 0、定义 1、命令模式包括四种角色 2、命令模式的UML类图 3、代码示例 0、定义 将一个请求封装为一个对象&#xff0c;从而使用户可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 1、命令模式包括四种角色 接…

VSCode汉化教程【简洁易懂】

我们安装完成后默认是英文界面。 找到插件选项卡&#xff0c;搜索“Chinese”&#xff0c;找到简体&#xff08;更具你的需要&#xff09;&#xff08;Microsoft提供&#xff09;Install。 安装完成后选择Change Language and Restart。

海洋通信船舶组网工业4G路由器应用

船舶是浩瀚海洋中探索与贸易的载体&#xff0c;更是船员们生活与工作的家园。为了在广阔的水域中搭建起稳定、高效的网络桥梁&#xff0c;工业4G路由器以卓越的通信组网能力&#xff0c;为船舶组网提供网络支持。 工业4G路由器以其强大的信号发射能力&#xff0c;确保船舶内部…

深入浅出分布式缓存:原理与应用

文章目录 概述缓存分片算法1. Hash算法2. 一致性Hash算法3. 应用场景Redis集群方案1. Redis 集群方案原理2. Redis 集群方案的优势3. Java 代码示例:Redis 集群数据定位Redis 集群中的节点通信机制:Gossip 协议Redis 集群的节点通信:Gossip 协议Redis 集群的节点通信流程Red…

麒麟部署一套NFS服务器,用于创建网络文件系统

一、服务端共享目录 在本例中,kyserver01(172.16.200.10)作为客户端,创建一个目录/testdir并挂载共享目录;kyserver02(172.16.200.11)作为服务端,创建一个共享目录/test,设置为读写权限,要求客户端使用root登录时映射为nobody用户、非root登录时保持不变。 服务端启…

美国AWS EC2 ubuntu 使用密码登陆

1。使用页面登录ec2 2.切换root用户 sudo -i 3.为root用户或者其它用户配置密码 passwd user passwd root 4.修改下面文件的配置vi /etc/ssh/sshd_config PermitRootLogin和PasswordAuthentication 修改为yes 第五步&#xff1a;进入/etc/ssh/sshd_config.d目录&#xff0c;…

圣诞节秘诀

&#x1f570;️你想在2024年圣诞节脱颖而出吗&#xff1f;利用我们的数据洞察&#xff0c;发现今年最受欢迎的礼物&#xff01;无论是在亚马逊、速卖通、Shopify还是直销平台上&#xff0c;我们的排行榜都将帮助您找到最畅销和最受欢迎的产品。立即优化您的库存&#xff0c;以…

Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线

文章目录 前言实现方式MenuLaser实现步骤1.Laser和Cursor2.移植函数3.启动逻辑4.检测射线和UI的碰撞5.激活手柄射线6.更新手柄射线位置7.隐藏手柄射线8.添加手柄的Trigger监听完整节点如下:效果图前言 之前我写过一篇文章《Unreal5从入门到精通之如何在VR中使用3DUI》,其中讲…

堆外内存泄露排查经历

优质博文&#xff1a;IT-BLOG-CN 一、问题描述 淘宝后台应用从今年某个时间开始docker oom的量突然变多&#xff0c;确定为堆外内存泄露。 后面继续按照上一篇对外内存分析方法的进行排查(jemalloc、pmap、mallocpmap/mapsNMTjstackgdb)&#xff0c;但都没有定位到问题。至于…

数据检索是什么意思?数据检索包括哪几个

不少用户会提出这样的疑问&#xff0c;数据检索是什么意思&#xff1f;数据检索即把数据库中存储的数据根据用户的需求提取出来&#xff0c;选择适合的数据库检索方式需要根据具体的需求和场景来进行判断。数据检索的结果会生成一个数据表&#xff0c;既可以放回数据库&#xf…

DimensionX:单图生成任意的3d/4d视图

DimensionX:单图生成任意的3d/4d视图 通俗易懂的来说 在我们的方法中&#xff0c;关键是如何从一张图片生成动态的3D和4D场景。我们使用一个叫做ST-Director的工具&#xff0c;它可以分开处理空间&#xff08;3D&#xff09;和时间&#xff08;4D&#xff09;两个方面。想象一…

接口测试和单元测试

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口测试的本质&#xff1a;就是通过数据驱动&#xff0c;测试类里面的函数。 单元测试的本质&#xff1a;通过代码级别&#xff0c;测试函数。 单元测试的框架…

第5篇 寻找最大数___ARM汇编语言<一>

Q&#xff1a;如何设计一段ARM处理器汇编语言子程序并调用来寻找一组数中的最大数呢&#xff1f; A&#xff1a;基本原理与基于Nios II处理器的汇编语言子程序一样&#xff0c;使用子程序LARGE实现找到列表中最大数的功能。主程序通过寄存器将列表的条目数和起始地址作为参数传…

JavaWeb之综合案例

前言 这一节讲一个案例 1. 环境搭建 然后就是把这些数据全部用到sql语句中执行 2.查询所有-后台&前台 我们先写后台代码 2.1 后台 2.2 Dao BrandMapper&#xff1a; 注意因为数据库里面的名称是下划线分割的&#xff0c;我们类里面是驼峰的&#xff0c;所以要映射 …

【LeetCode每日一题】——746.使用最小花费爬楼梯

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 简单 三【题目编号】 746.使用最小花费爬楼梯 四【题目描述】 给你一…

记录下jekins新建个前端部署配置项

1 新建个item 2 输入项目名称&#xff0c;选择个新的工程或 或者搜个已存在的现有模板 3 添加一些描述 4 &#xff08;可选&#xff09;配置下构建历史保存情况 5 限制下构建节点和选择gitlab或者github 6 写下git仓库地址、账号密码以及分支 7 选择构建工具node以及版本 8 构建…

设计模式之 状态模式

状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态改变时&#xff0c;改变其行为。这种模式将状态的转换和行为的变化解耦&#xff0c;将不同状态的行为封装到独立的状态类中&#xff0c;而通过上下文&#xff08;Con…

uni-app 界面TabBar中间大图标设置的两种方法

一、前言 最近写基于uni-app 写app项目的时候&#xff0c;底部导航栏 中间有一个固定的大图标&#xff0c;并且没有激活状态。这里记录下实现方案。效果如下&#xff08;党组织这个图标&#xff09;&#xff1a; 方法一&#xff1a;midButton的使用 官方文档&#xff1a;ta…

IText创建加盖公章的pdf文件并生成压缩文件

第一、前言 此前已在文章&#xff1a;Java使用IText根据pdf模板创建pdf文件介绍了Itex的基本使用技巧&#xff0c;本篇以一个案例为基础&#xff0c;主要介绍IText根据pdf模板填充生成pdf文件&#xff0c;并生成压缩文件。 第二、案例 以下面pdf模板为例&#xff0c;生成一个p…

合法三元数量计算

问题描述 小C、小U 和小R 三个好朋友喜欢做一些数字谜题。这次他们遇到一个问题&#xff0c;给定一个长度为n的数组a&#xff0c;他们想要找出符合特定条件的三元组 (i, j, k)。具体来说&#xff0c;三元组要满足 0 < i < j < k < n&#xff0c;并且 max(a[i], a[…