【发布时间】:2017-10-25 08:55:09
【问题描述】:
我正在使用 Spring Boot 开发应用程序。在资源中使用路径变量(**@PathVariable** 注释)和请求参数(**@RequestParam("name")** 注释)。我的代码获取请求参数值而不是路径变量值,我将路径变量值设为空。请任何人建议我解决这个问题。
@RequestMapping(value = "/api/user/{id}", method = RequestMethod.GET)
public void get(@RequestParam("name") String name, @PathVariable Integer id); {
System.out.println("name="+name);
System.out.println("id="+id)
}
网址:
http://localhost:8080/api/user/2?name=neeru
输出:
名称=neeru
id=null
我也试过了
**@RequestMapping(value = "/api/user/id={id}", method = RequestMethod.GET)**
网址:
http://localhost:8080/api/user/id=2?name=neeru
但得到相同的 id 值=null
我又增加了一种方法——只有@PathVariable
@RequestMapping(path="/api/user/name/{name}", method = RequestMethod.GET)
void get( @PathVariable("value=name") String name){
System.out.println("name="+name)
}
但结果是相同的路径变量值 name=null
【问题讨论】:
-
你能试试用 api/user/{id} 代替 api/user/id={id} 吗?
-
是的,我尝试了 api/user/id={id}?name=abc 但得到了相同的 id 空值
-
为路径变量设置一个名称,如@PathVariable(name="id") 以便解析..
-
是的,尝试了 @PathVariable(name="id") 和 @PathVariable(value="id") ,两者都不起作用
-
你打错了...应该是@PathVariable(value="name") 而不是@PathVariable("value=name")
标签: java spring spring-mvc spring-boot