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) { ... }