调用GET请求后出现错误请求

时间:2020-10-12 08:53:47

标签: java spring typescript

我想做什么:

我想将两个参数从前端传递到后端。

这是我的代码:

在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]””

很抱歉,这是一个非常简单的解决方法。我根本找不到适合我的解决方案。

但是知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

当您使用ISO日期时间格式时,请确保您的请求参数(active_from和active_to)采用ISO dateTime格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX 例如2020-10-12T00:01:01是一个很好的示例值。另外,我建议使用LocalDateTime

代替Joda dateTIme