Spring Boot - Comment faire pour obtenir une demande tous les params dans une carte au Printemps RestController?
Exemple d'URL:
../get/1?attr1=1&attr2=2&attr3=3
Je ne connais pas les noms de attr1, att2, et attr3.
Quand j'ai couru ce code, j'obtiens la taille du 'allRequestParams' est égal à 1
@RequestMapping(value = "/get/", method = RequestMethod.GET)
public String search(
@RequestParam Map<String,Integer> allRequestParams) {
System.out.println(allRequestParams.size());
return "";
}
Est le problème avec le Printemps ou j'ai écrit un code erroné.
Merci!!!!
- quels sont les types de vos valeurs de paramètre de requête? Sont-ils tous
Integer
s. Essayez de changer votre carte pour être de type<String, String>
- Les valeurs sont des nombres Entiers. J'ai testé avec de la Ficelle mais je n'ai pas la taille attendue( taille de la carte doit être de 3)
- Double Possible de Spring MVC - Comment faire pour obtenir une demande tous les params dans une carte au Printemps contrôleur?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir un POJO qui contient une carte.. quelque Chose comme ci-dessous:
Objet De Demande:
Pour votre exemple ne sont pas vous manque un @PathVariable pour accéder à la variable de Chemin avec la valeur "1" dans votre exemple d'URL?
Aussi, êtes-vous importer java.util.Carte?
Si vous êtes de passage les attributs de la requête sous la forme de paramètres de la requête, alors vous pouvez obtenir directement à l'aide de HttpServletRequest. Passer comme paramètre de votre méthode et de l'utiliser comme httpServletRequest.getParameterMap(). Ce sera le retour immuable java.util.Carte des paramètres de la requête. Chaque entrée de la carte sera la clé de type Chaîne de caractères et la valeur de type String[]. Donc, si vous avez une seule valeur, vous pouvez directement accéder à l'entrée.getValue()[0] serait vous donner la première valeur. Le Code ressemble à quelque chose de ce genre pour accéder aux valeurs.
Espérons que cette aide !!