Spring MVC + RequestParam comme Carte + obtenir l'URL de la matrice de paramètres ne fonctionne pas

Je suis actuellement en train de travailler sur une API contrôleur. Ce contrôleur doit être en mesure de rattraper tout - inconnu - paramètre et le mettre dans un Map objet. Maintenant, je suis en utilisant ce code pour attraper tous les paramètres et de les mettre dans un Map

public String processGetRequest(final @RequestParam Map params)

Maintenant l'url que j'ai appel comme suit:

server/api.json?action=doSaveDeck&Card_IDS[]=1&Card_IDS[]=2&Card_IDS[]=3

Puis-je imprimer les paramètres, à des fins de débogage, avec ce morceau de code:

if (logger.isDebugEnabled()) {
    for (Object objKey : params.keySet()) {
        logger.debug(objKey.toString() + ": " + params.get(objKey));
    }
}

Le résultat est de:

10:43:01,224 DEBUG ApiRequests:79 - action: doSaveDeck
10:43:01,226 DEBUG ApiRequests:79 - Card_IDS[]: 1

Mais le résultat attendu doit être quelque chose comme:

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

Ou au moins me dire que la Card_IDS est un String[] /List<String> et, par conséquent, doit être utilisé. J'ai aussi essayé le casting du paramètre à une List<String> manuellement mais cela ne fonctionne pas non plus:

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));
    }
}

Quelqu'un pourrait-il me dire comment obtenir le tableau Card_IDS - Il doit être dynamiquement - à partir de la Map params à l'aide de la NameConfiguration.PARAM_NAME_CARDIDS?

OriginalL'auteur Jaap Oudejans | 2013-05-03