@PathVariable 和 @RequestParam 不能一起工作

Posted

技术标签:

【中文标题】@PathVariable 和 @RequestParam 不能一起工作【英文标题】:@PathVariable and @RequestParam not working together 【发布时间】:2015-08-18 22:29:10 【问题描述】:

我的控制器中有以下代码:

@RequestMapping(value = "/child/nodeId/relType",method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)    
public Iterable<Node> getConnectedNodes(@RequestParam("page")int page, @RequestParam("size")int size, @PathVariable("nodeId") String nodeId, @PathVariable("relType") String relType) 
    return nodeService.getConnectedNodes(nodeId, relType,page,size);    

这是我点击的 API URL

http://localhost:8080/node/child/e17a64ff-dc2b-49b1-a995-67dba9413d67/Collegues?page=0&size=1

在调试模式下,我可以看到路径变量的值,即nodeIdrelType,但看不到请求参数pagesize 的值,我在上面的URL 中通过我的请求。

@RequestParam 有什么问题?

【问题讨论】:

【参考方案1】:

你能试试下面的sn-p吗:

@RequestMapping(value = "/child/nodeId/relType",method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)    
public Iterable<Node> getConnectedNodes(@RequestParam(value="page", required=false) int page, @RequestParam(value="size", required=false) int size, @PathVariable("nodeId") String nodeId, @PathVariable("relType") String relType) 
    return nodeService.getConnectedNodes(nodeId, relType,page,size);    

【讨论】:

以上是关于@PathVariable 和 @RequestParam 不能一起工作的主要内容,如果未能解决你的问题,请参考以下文章

@RequestParam 与 @PathVariable

结合@PathVariable 和@RequestBody

@PathVariable注解和@RequestParam注解的区别

@PathVariable注解和@RequestBody注解

@PathVariable

Spring Boot-3 (@PathVariable和@RequestParam)