我想将两个参数从前端传递到后端。
在TS文件中:
activeFromActiveToQuery(req?: any): Observable<ResponseWrapper>{
const options = createRequestOption(req);
options.params.append("active_from", req.active_from.toString());
options.params.append("active_To", req.active_to.toString());
return this.http.get(this.resourceActiveFromActiveToURL, options)
.map((res: Response) => this.convertResponse(res));
}
checkOverlappingDates (recommendedSection: RecommendedSection) {
this.activeFromActiveToQuery({
active_from: recommendedSection.activeFrom,
active_to: recommendedSection.activeTo
}).subscribe((data) => {
var retValue;
if(data.json == ""){
retValue = false;
}else{
retValue = true;
}
return retValue;
在Java资源类中:
public ResponseEntity<List<RecommendedSection>> getRecommendedSectionActiveFromAndActiveToMatching(@RequestParam("active_from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) DateTime active_from,
@RequestParam("active_to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) DateTime active_to){
log.debug("REST request to get active_from and active_to: {}", active_from, active_to);
List<RecommendedSection> entityList = recommendedSectionService.findRecommendedSectionActiveFromAndActiveToMatching(active_from, active_to);
return ResponseEntity.ok().body(entityList);
}
我收到一个错误请求,告诉我以下内容:
“无法将类型'java.lang.String'的值转换为所需的类型'org.joda.time.DateTime';嵌套的异常是org.springframework.core.convert.ConversionFailedException:无法从类型[java .lang.String]为值“ [对象对象]键入[@ javax.validation.Valid @ org.springframework.web.bind.annotation.RequestParam @ org.springframework.format.annotation.DateTimeFormat org.joda.time.DateTime] ]';嵌套异常为java.lang.IllegalArgumentException:无效格式:“ [[Object Object]””
很抱歉,这是一个非常简单的解决方法。我根本找不到适合我的解决方案。
但是知道如何解决这个问题吗?
答案 0 :(得分:1)
当您使用ISO日期时间格式时,请确保您的请求参数(active_from和active_to)采用ISO dateTime格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX
例如2020-10-12T00:01:01
是一个很好的示例值。另外,我建议使用LocalDateTime