2013-05-31 19 views
30

Sono sicuro che questa è una domanda molto semplice, ma sono molto nuovo a Groovy ed è qualcosa con cui sto lottando da un po 'ora. Ho un HttpServletRequest e ho bisogno di fare qualcosa con i suoi parametri. Tuttavia, voglio escludere esattamente 1 parametro.Rimozione di una chiave data da una mappa Groovy

In precedenza, stavo usando

req.getParameterMap 

Tuttavia, per rimuovere il un valore, sto cercando qualcosa sulla falsariga di

def reqParams = req.getParameterMap?.remove('blah'); 

so che il lavoro non fa abbastanza sopra, ma questo è il codice psuedo per quello che sto cercando di ottenere. Ho davvero bisogno della nuova mappa e degli oggetti originali req.getParameterMap() uguali a eccezione della chiave mancante. Qual è il modo migliore per raggiungere questo obiettivo? Grazie!

+3

Usi graal o aggiungi semplicemente il supporto Groovy alla tua app java? –

+0

Utilizzato solo all'interno di un'app java. – JToland

risposta

41

req.getParameterMap restituisce una mappa immutabile che non può essere modificata. È necessario creare una nuova mappa, putAll dalla mappa dei parametri e rimuovere la chiave richiesta che non si desidera.

def reqParams = [:] << req.getParameterMap() 
reqParams.remove('blah') 

avete la vostra nuova mappa come reqParams (senza la coppia chiave-valore indesiderato) e la mappa parametri originali.

+0

Ah, questo ha senso. Non avevo capito che era immutabile. Grazie! – JToland

Problemi correlati