这是我的控制器:
@RestController
@RequestMapping("/warning/data")
public class EarlyWarningDataController {
@RequestMapping(value = "/get/{soeid}/{gfcid}/{expressioncode}/{fiscalYear}/{timeperiod}",
method = RequestMethod.GET)
public String getEarlyWarningData(@PathVariable("soeid") String soeId,
@PathVariable("gfcid") String[] gfcId,
@PathVariable("expressioncode") String expressionCode,
@PathVariable("fiscalYear") Long fiscalYear,
@PathVariable("timeperiod") String timePeriod) throws IOException {
sysout("");
}
当我点击网址时
htpt://xyz:8080/EarlyWarning/warning/data/get/samplesoeid/1005771621/CAT_TOTAL_REV/2012/Annual
它工作正常。
但我想发送类似以下内容的网址:
htpt://xyz:8080/EarlyWarning/warning/data/get/soeid=samplesoeid/gfcid=1005771621/expressioncode=CAT_TOTAL_REV/fiscalyear=2012/timeperiod=Annual
我需要对代码进行哪些更改?帮助。
答案 0 :(得分:1)
您应该将这些参数转换为@RequestParam
,而不是@PathVariable
。 @RequestParam
是必要的查询参数(在URL中的?之后,除以&,如http://www.example.com?field1=value1&field2=value2&field3=value3..。)。
此处讨论了@PathVariable
和@RequestParam
之间的差异:@RequestParam vs @PathVariable
答案 1 :(得分:0)
您应该将键值数据作为查询参数传递,例如:
http://xyz:8080/Earlywarnings/warning?soeid=samplesoeid&gfcid=1005771621&expressioncode=CAT_TOTAL_REV&fiscalyear=2012&timeperiod=Annual
不要在网址中指定方法,它已经知道了。
有关获取参数的更多信息,请查看此答案: