2014-04-29 51 views
2

我想將url中的兩個變量傳遞給我的Spring控制器。如何在Spring的控制器中傳遞Url中的多個變量?

我試圖用下面的代碼來實現這個。 控制器雖然只讀取第二個參數。

我在這裏失蹤了什麼?

@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

+1

你可以嘗試'@PathVariable(「Id」)字符串ID,@PathVariable(「名稱」)字符串名稱在你的方法簽名? – prabugp

回答

3

這可能取決於你正在編譯源代碼的方式。如果參數名稱不包含在字節碼中,我不認爲沒有value屬性的@PathVariable的行爲被定義。明確添加它

@RequestMapping(value = "/Id/{Id}/Name/{Name}", method = RequestMethod.GET) 
public String getGreeting(@PathVariable(value = "Id") String Id, @PathVariable(value = "Name") String Name) { 
+0

啊男人..打了我一分鐘。 – prabugp

+0

@prabugp觸發快樂:) –

0

您可以使用@PathVariable將任意數量的值傳遞給控制器​​。你可以閱讀這個簡單的example

相關問題