@PathVariable和@RequestParam没有合作

mah*_*wde 7 java spring path-variables spring-mvc spring-annotations

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

@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);    
    }
Run Code Online (Sandbox Code Playgroud)

这是我正在打的API网址

HTTP://本地主机:8080 /节点/儿童/ e17a64ff-DC2B-49b1-a995-67dba9413d67 /的同事页= 0&大小= 1

在调试模式下,我可以看到路径变量的值,即nodeIdrelType,但是看不到我在上面的URL中通过我的请求传递的请求参数页面大小的值.

@RequestParam有什么问题?请帮忙.

Arp*_*wal 3

你可以尝试使用下面的代码片段:

@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);    
}
Run Code Online (Sandbox Code Playgroud)