2013-05-31 2 views
30

Я уверен, что это очень простой вопрос, но я очень новичок в Groovy, и это то, над чем я сейчас борется. У меня есть HttpServletRequest, и мне нужно что-то сделать с его параметрами. Однако я хочу исключить ровно 1 параметр.Удаление данного ключа с карты Groovy

Раньше я использовал

req.getParameterMap 

Однако, чтобы удалить одно значение, я пытаюсь что-то вдоль линий

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

Я знаю, что выше не совсем работает, но это psuedo-код для того, чего я пытаюсь достичь. Мне действительно нужна новая Карта и оригинал req.getParameterMap() Объекты, которые выглядят точно так же, за исключением одного отсутствующего ключа. Каков наилучший способ достичь этого? Благодаря!

+3

Вы используете grails или просто добавляете groovy поддержку своего приложения java? –

+0

Просто используется в приложении Java. – JToland

ответ

41

req.getParameterMap возвращает неизменяемую карту, которая не может быть изменена. Вам нужно создать новую карту, putAll из карты параметров и удалить требуемый ключ, который вам не нужен.

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

У вас есть новая карта как reqParams (без пары ключей нежелательного значения) и исходной карта параметров.

+0

А, это имеет смысл. Я не понимал, что это было неизменным. Благодаря! – JToland

Смежные вопросы