![](/img/trans.png)
[英]Spring MVC unit tests - can I pass URL (with params) to controller?
[英]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.