在Spring Web中,从URL获取参数

问题描述 投票:0回答:1

我有这个网址。

http://localhost:9000/api/datos-generales?page=0&size=20&sort=id,asc&filter=7588

我想恢复最后一个参数的值。 “过滤器”。

这是后端方法的签名。

@RestController
@RequestMapping("/api/datos-generales")
public class DatosGeneralesResource {

   @GetMapping("")
    public ResponseEntity<List<DatosGeneralesDTO>> getAllDatosGenerales(
        @org.springdoc.core.annotations.ParameterObject Pageable pageable,
       // @RequestAttribute(name = "filter", required = false, value = "") String filter,
        @RequestParam(name = "filter", defaultValue = "", required = false) String filter
    ) {
//SOME CODE
    log.debug('FILTER:", filter);
//Here the output is "FILTER:" but the value is not logged.
}
}

我尝试过使用RequestAttribute、RequestParam甚至使用RequestBody,但它们都无法获取参数中的值。

什么是正确的方法?

java spring-boot rest spring-mvc
1个回答
0
投票

我认为问题是你的空 URL 路径,试试这个:

@RestController
@RequestMapping("/api").              // <<< change 1 here
public class DatosGeneralesResource {

   @GetMapping("/datos-generales")    // <<< change 2 here
    public ResponseEntity<List<DatosGeneralesDTO>> getAllDatosGenerales(
        @org.springdoc.core.annotations.ParameterObject Pageable pageable,
        @RequestParam(name = "filter", defaultValue = "", required = false) String filter
    ) {
        //SOME CODE
        log.debug('FILTER:", filter);
    }
}

而且,是的,

@RequestParam
是正确使用的注释

© www.soinside.com 2019 - 2024. All rights reserved.