未找到Spring Url请求参数

时间:2015-07-28 12:23:45

标签: spring rest spring-boot

您好我正在编写REST控制器并遇到一个有趣的问题

如果有控制器

@RequestMapping(value = "/test", method = RequestMethod.GET)
public ResponseEntity getAfterSalesFiles(@PathParam("store") final String store,
                                         @PathParam("filter") final String filter,
                                         @PathParam("sort") final Pageable pageable) {

    System.out.println("filter " + filter);
    System.out.println("page " + pageable.getPageNumber());
    System.out.println("size " + pageable.getPageSize());
    return new ResponseEntity<>(HttpStatus.OK);
}

当我执行以下curl命令时

curl localhost:8109/product/test?page=3&size=25&filter=cookies

我在我的控制台中获得以下内容

filter null
page 3
size 20

所以页面正确,大小和过滤器都是错误的 如果我在url中交换变量,第一个参数是正确的,其他参数是错误的

编辑: 香港专业教育学院也试过

@RequestMapping(value = "/test", method = RequestMethod.GET)
public ResponseEntity getAfterSalesFiles(@RequestParam(value = "store") final String store,
                                         @RequestParam(value = "filter") final String filter,
                                         @RequestParam(value ="sort") final Pageable pageable) {

    System.out.println("filter " + filter);
    System.out.println("page " + pageable.getPageNumber());
    System.out.println("size " + pageable.getPageSize());
    return new ResponseEntity<>(HttpStatus.OK);
}

和curl

curl localhost:8109/product/test?filter=cookies&store=bavo&size=25&page=3

然后我得到以下输出

{"timestamp":1438087790411,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.MissingServletRequestParameterException","message":"Required String parameter 'store' is not present","path":"/product/test"}

我有什么想法在哪里看/如何调试?

此致 Bakil

1 个答案:

答案 0 :(得分:1)

&符号&告诉shell在后台运行curl命令并结束命令;这就是为什么你也没有找到&#34;命令&#34;你忽略了提到的错误。

将整个URI放在引号内。