使用Spring MVC处理多个URL参数

时间:2016-01-13 16:54:02

标签: java spring rest spring-mvc

我在类级别设置了@RequestMapping("/vehicle")的Spring Controller类。这个类的一种方法是

@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public Vehicle getVehicleByRegistration(
    @RequestParam(value="doAs", required = true) String doAsUser,
    @RequestParam(value="registration", required = true) String registration) throws IOException {

    return vehicleController.getByIndex(registration, doAsUser);
}

我发送的查询就像:

curl -iv localhost:8096/vehicle/?doAs=user&registration=ABC1234

执行时,我得到一个包含以下内容的回复:

"exception":"org.springframework.web.bind.MissingServletRequestParameterException","message":"Required String parameter 'registration' is not present"

如果我颠倒了网址中doAsregistration的顺序,则错误会显示'doAs' is not present

如果我修改方法只采用一个参数(doAsregistration),那么它可以正常工作。

这里出了什么问题?我已尝试在param中使用@RequestMapping,但这也无效。

2 个答案:

答案 0 :(得分:3)

你没有保护&符号来保护shell,这就是为什么你也得到了其他奇怪的shell输出。将URL放在引号中。

答案 1 :(得分:0)

尝试引用你要传递给卷曲的网址,在其他帖子中,我看到了&ampersant正在处理这项工作。 尝试:

curl -iv“localhost:8096 / vehicle /?doAs = user& registration = ABC1234”