Spring 似乎忽略 required=false 请求参数

Posted

技术标签:

【中文标题】Spring 似乎忽略 required=false 请求参数【英文标题】:Spring appears to ignore required=false request parameters 【发布时间】:2018-11-20 22:51:57 【问题描述】:

请提供任何帮助,因为这一切对我来说都很好。我有一个@RestController,我想要一个方法,该方法具有可选的ZonedDateTime 请求参数,指示查询日期范围的开始/结束,

@GetMapping("/api/v1/user/userID/resource/resourceID/data")
public ResponseEntity<String> getResourceData(
        @PathVariable String userID,
        @PathVariable String resourceID,
        @RequestParam(name = "start", required = false) @DateTimeFormat(iso = ISO.DATE_TIME)  ZonedDateTime start,
        @RequestParam(name = "end", required = false) @DateTimeFormat(iso = ISO.DATE_TIME)  ZonedDateTime end
) 

路径变量工作正常,但是当我尝试使用有效日期到达终点时,它们似乎被忽略了,例如

curl  http://localhost:8080/api/v1/user/a/resource/a/data?start=2018-01-01T00:00:00.000Z&end=2018-01-02T00:00:00.000Z

有什么想法吗?

【问题讨论】:

【参考方案1】:

必须记住在 curl 命令中使用引号将 URL 包裹起来,并正确匹配 ISO 8601 的预期日期格式

【讨论】:

以上是关于Spring 似乎忽略 required=false 请求参数的主要内容,如果未能解决你的问题,请参考以下文章

Spring 忽略 @Transactional 注释

spring装配之 @Autowired 和 @Resource 注解的区别

在安全的 Spring Boot RESTful API 上为登录创建不安全的端点 - WebConfig 似乎被忽略了

Spring Boot Security 忽略 cors 配置

5.spring注解@Required@Autowired@qualifier@resource

ZF2: 'required' => false 忽略 DateSelect 元素