我目前正在使用API控制器。該控制器應該能夠捕獲任何 - 未知的 - 參數並將其放入Map
對象中。現在,我使用這個代碼來捕獲的所有參數,並把它們放在一個Map
Spring MVC + RequestParam爲Map +獲取URL數組參數不起作用
public String processGetRequest(final @RequestParam Map params)
現在我所說的網址如下:
server/api.json?action=doSaveDeck&Card_IDS[]=1&Card_IDS[]=2&Card_IDS[]=3
然後,我打印出來的參數,用於調試目的,與此片的代碼:
if (logger.isDebugEnabled()) {
for (Object objKey : params.keySet()) {
logger.debug(objKey.toString() + ": " + params.get(objKey));
}
}
的該結果是:
10:43:01,224 DEBUG ApiRequests:79 - action: doSaveDeck
10:43:01,226 DEBUG ApiRequests:79 - Card_IDS[]: 1
但預期的結果應該是這樣的:
10:43:XX DEBUG ApiRequests:79 - action: doSaveDeck
10:43:XX DEBUG ApiRequests:79 - Card_IDS[]: 1
10:43:XX DEBUG ApiRequests:79 - Card_IDS[]: 2
10:43:XX DEBUG ApiRequests:79 - Card_IDS[]: 3
或至少告訴我,Card_IDS是String[]/List<String>
,因此應被鑄造。我也試過參數鑄造手動一個List<String>
但是,這並不工作,要麼:
for (Object objKey : params.keySet()) {
if(objKey.equals(NameConfiguration.PARAM_NAME_CARDIDS)){ //Never reaches this part
List<String> ids = (List<String>)params.get(objKey);
for(String id : ids){
logger.debug("Card: " + id);
}
} else {
logger.debug(objKey + ": " + params.get(objKey));
}
}
有人能告訴我怎麼去數組Card_IDS
- 通過使用NameConfiguration.PARAM_NAME_CARDIDS
從Map params
- 它必須是動態?