Je suis sûr que c'est une question très simple, mais je suis très nouveau pour Groovy et c'est quelque chose avec lequel je me bats depuis un moment. J'ai un HttpServletRequest
et je dois faire quelque chose avec ses paramètres. Cependant, je veux exclure exactement 1 paramètre.
Auparavant, j'utilisais
req.getParameterMap
Cependant, pour supprimer la seule valeur, j'essaie quelque chose dans le sens de
def reqParams = req.getParameterMap?.remove('blah');
Je sais que ce qui précède ne fonctionne pas tout à fait, mais c'est le pseudo-code pour ce que j'essaie de réaliser. J'ai vraiment besoin que la nouvelle carte et les objets req.getParameterMap()
d'origine soient exactement identiques, à l'exception de la seule clé manquante. Quelle est la meilleure façon d'y parvenir? Merci!
req.getParameterMap
renvoie une carte immuable qui ne peut pas être modifiée. Vous devez créer une nouvelle carte, putAll
à partir de la carte de paramètres et supprimer la clé requise dont vous ne voulez pas.
def reqParams = [:] << req.getParameterMap()
reqParams.remove('blah')
Vous avez votre nouvelle carte en tant que reqParams
(sans la paire de valeurs de clé indésirable) et la carte de paramètres d'origine.
Vous pouvez utiliser la fonction findAll
, quelque chose comme:
def map = req.getParameterMap().findAll {it.key != 'blah'}