SpringMVC Get请求如何获取Date类型的参数—— @DateTimeFormat
编写Python爬虫:requests库的GET和POST请求使用 #生活知识# #编程教程#
背景介绍
今天Code Review的时候发现一个小问题,发现部分接口(Get)接收前端传递的时间类型用的是String类型的然后再到代码中转换成Date类型.
我提出我的疑惑:“嘿、boy 这地方为啥要用String 接收开始时间和结束时间?”
boyA:“不用String 直接用Date会报错啊!难道你们不用String?”
boyB一脸懵逼加略带嘲讽回到:“怎么可能报错?我这边都直接用Date接收的,你看…”,熟练的打开项目
boyA看完后回复:“你这不对啊,查询接口用Post?不符合rest风格啊!要用get、get、get!”
boyB…装逼失败反被艹。
下面是请求与后台的报错日志
@GetMapping("/v1/date/test_a") @ApiOperation(value = "/v1/date/test_a" , notes = "错误案例") @ApiImplicitParam(paramType = "query",name = "startTime", value = "时间[yyyy-MM-dd HH:mm:ss]", dataType = "Date",defaultValue = "2019-03-14 14:00:00") public Response<Date> dateA(@RequestParam("startTime") Date startTime){ return ResponseUtil.getSuccessResponse(startTime); } 123456
@DateTimeFormat
好了本篇博客主角上场,使用方法:
@DateTimeFormat(pattern = “yyyy-MM-dd”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
指定前端传递的格式即可
代码demo:
@GetMapping("/v1/date/test_b") @ApiOperation(value = "/v1/date/test_b" , notes = "成功案例 Date [yyyy-MM-dd]") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "startDate", value = "时间[yyyy-MM-dd]", dataType = "Date", defaultValue = "2019-03-14"), @ApiImplicitParam(paramType = "query", name = "endDate", value = "时间[yyyy-MM-dd]", dataType = "Date", defaultValue = "2019-03-15") }) public Response<String[]> dateB(@RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @RequestParam("endDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date endDate){ return ResponseUtil.getSuccessResponse(new String[]{DateUtils.parseDate(startDate,DateUtils.YYYY_MM_DD),DateUtils.parseDate(endDate,DateUtils.YYYY_MM_DD)}); } @GetMapping("/v1/date/test_c") @ApiOperation(value = "/v1/date/test_c" , notes = "成功案例 DateTime [yyyy-MM-dd HH:mm:ss]") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "startDate", value = "时间[yyyy-MM-dd HH:mm:ss]", dataType = "Date", defaultValue = "2019-03-14 14:00:00"), @ApiImplicitParam(paramType = "query", name = "endDate", value = "时间[yyyy-MM-dd HH:mm:ss]", dataType = "Date", defaultValue = "2019-03-15 14:00:00") }) public Response<String[]> dateC(@RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startDate, @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endDate){ return ResponseUtil.getSuccessResponse(new String[]{DateUtils.parseDate(startDate,"yyyy-MM-dd HH:mm:ss"),DateUtils.parseDate(endDate,"yyyy-MM-dd HH:mm:ss")}); }
123456789101112131415161718192021@DateTimeFormat注解也可以直接写在实体类对象中的成员变量上。
最后boyA and boyB手牵手携手共进
网址:SpringMVC Get请求如何获取Date类型的参数—— @DateTimeFormat https://www.yuejiaxmz.com/news/view/179664
相关内容
初入python,尝试获得A股交易数据(5)——利用tushare获取A股数据并尝试存入mysql(续)SpringMVC理论、SSM搭建、文件上传下载、拦截器,全局异常捕获、学习笔记
@RequestBody @RequestBody 等参数说明
如何根据设备获取绑定关系
如何调用API获取设备组的设备列表
智慧城市如何通过技术手段提升城市生活的质量与效率?请结合实际案例分析其在城市规划和管理中的应用。
全球人类足迹数据(WSF)数据
【网站项目】基于springboot的生活信息分享平台
记者如何从生活中获取新闻线索
springmvc 使用REST 出现此种错误:Request method 'PUT' not supported