Spring 2nd RequestParam总是被忽略

时间:2018-06-14 20:17:38

标签: java spring rest http-request-parameters

我可能需要你的帮助来理解我的Java Spring代码无法正常工作的原因。

我有一个HTTP Get方法,其中我想传递两个请求参数。虽然第一个参数传递得很好,但第二个参数总是为空或空。

这就是方法的开头。

@RequestMapping(value = "/session/{sessionID}", method = RequestMethod.GET)
public ResponseEntity<List<SensordataDTO>> getSensordataBySessionID(
    @PathVariable("sessionID") long sessionID,
    @RequestParam(required = false, name = "startSequence") Optional<Long> startSequence,
    @RequestParam(required = false, name = "endSequence") Optional<Long> endSequence) {

我尝试了RequestParam的不同类型,如long,Long和Optional。 我还尝试在@RequestParam注释中指定默认值=,name =,value = parameters。但无论如何,url中的第二个参数始终为null / empty string。

如果我对网址本身做错了,我就是这样编写的:

"/session/1?startSequence=4&?endSequence=6"

我希望你知道我错过了什么。

2 个答案:

答案 0 :(得分:1)

您的要求

/session/1?startSequence=4&?endSequence=6

应该如此,RequestParam的第一部分以?开头,后面的任何requestParams都以&开头。

话虽如此,您的请求应该是这样的。

/session/1?startSequence=4&endSequence=6

所有改变的都是删除了第二个?

答案 1 :(得分:0)

改变它:

"/session/1?startSequence=4&?endSequence=6"

对于它:

"/session/1?startSequence=4&endSequence=6"

?仅用于第一个参数,之后您可以使用&添加更多参数。