簡體   English   中英

如何在 Spring 控制器的 Url 中傳遞多個變量?

[英]How can i pass multiple variables in the Url for the Spring controller?

我想將 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

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

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

您可以使用@PathVariable將任意數量的值傳遞給控制器​​。 您可以閱讀此簡單示例

您可以使用 Map 接口從 URL 傳遞多個變量,而不是為 URL 中的每個變量聲明多個 @pathVariable。 例如 :

 @RequestMapping("/student/{rollNo}/{class}")
 public void college(@PathVariable Map<String, String> pathVariables) {
    String rollNo = pathVariables.get("rollNo");
    String classNo = pathVariables.get("class");
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM