Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot:LocalDateTime控制器参数(非常疲惫)_Spring_Spring Boot_Jackson - Fatal编程技术网

Spring boot:LocalDateTime控制器参数(非常疲惫)

Spring boot:LocalDateTime控制器参数(非常疲惫),spring,spring-boot,jackson,Spring,Spring Boot,Jackson,我正在使用LocalDateTimecontroller参数来接收日期: @RequestMapping( path = EspaiDocConstants.Endpoints.FO_BOINTERFACE_REQUEST_MAPPING_AUDITS, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE ) public Collection<Audit> listA

我正在使用
LocalDateTime
controller参数来接收日期:

@RequestMapping(
    path = EspaiDocConstants.Endpoints.FO_BOINTERFACE_REQUEST_MAPPING_AUDITS,
    method = RequestMethod.GET,
    produces = MediaType.APPLICATION_JSON_VALUE
)
public Collection<Audit> listAudits(
    @RequestParam(value = "deadline", required = false)
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
        LocalDateTime deadline) {}
然后,在我的
截止日期
参数上添加
@modeldattribute

public Collection<Audit> listAudits(
    @RequestParam(value = "deadline", required = false)
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
    @ModelAttribute
        LocalDateTime deadline) {}

有什么想法吗?

使用方法级别上的
@modeldattribute
注释,您可以向每个请求方法的每个模型添加并绑定隐式方法的返回值。因此,您不必通过model.addAttribute(“key”,value)在每个
GET、POST、PUT
DELETE
-方法中添加对象

因此,对于您的用例,不需要使用带注释的方法
@modeldattribute

public Collection<Audit> listAudits(
    @RequestParam(value = "deadline", required = false)
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
    LocalDateTime deadline) { ... }
公共集合列表审核(
@RequestParam(value=“deadline”,required=false)
@DateTimeFormat(iso=DateTimeFormat.iso.DATE\u时间)
LocalDateTime截止日期){…}
应该有用


但可能有必要在请求参数客户端对冒号进行编码

如果没有
@modeldattribute
,我就会明白:
找不到java.time.LocalDateTime类的主构造函数或默认构造函数,这是因为LocalDateTime没有提供合适的构造函数。Spring尝试使用
新建LocalDateTime(..)
创建对象,但找不到匹配的构造函数。当使用带注释的
@modeldattribute
方法时,Spring插入当前本地日期时间(来自
.now()
方法)。因此,来自请求的日期时间与java方法内的日期时间不匹配。我认为您必须实现自己的
LocalDatetimeFormatter
https://localhost:8080/bo/audits?deadline=2000-10-31T01:30:00.000-05:00
public Collection<Audit> listAudits(
    @RequestParam(value = "deadline", required = false)
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
    LocalDateTime deadline) { ... }