我想将url中的两个变量传递给我的Spring Controller。
我试图使用以下代码实现此目的。 控制器虽然只读取第二个参数。
我在这里缺少什么?
@RestController
@RequestMapping("/service/getVars")
public class SpringServiceController {
@RequestMapping(value = "/Id/{Id}/Name/{Name}", method = RequestMethod.GET)
public String getGreeting(@PathVariable String Id, @PathVariable String Name) {
//Both id and name now holds Name variables value.
System.out.println("Id: "+ Id + " >> Name: " + Name);
}
}
i / p:localhost:8080/service/getVars/Id/111/Name/222
o / p:Id: 222 >> Name: 222
预期o / p:Id: 111 >> Name: 222
答案 0 :(得分:3)
这可能取决于您编译源代码的方式。如果参数名称不包含在字节代码中,我认为没有定义@PathVariable
没有value
属性的行为。明确添加
@RequestMapping(value = "/Id/{Id}/Name/{Name}", method = RequestMethod.GET)
public String getGreeting(@PathVariable(value = "Id") String Id, @PathVariable(value = "Name") String Name) {
答案 1 :(得分:0)
您可以使用@PathVariable将任意数量的值传递给控制器。你可以阅读这个简单的example。