Удаление заданного ключа с карты Groovy
Я уверен, что это очень простой вопрос, но я очень новичок в Groovy, и это то, над чем я сейчас борется. У меня есть HttpServletRequest
, и мне нужно что-то сделать с его параметрами. Однако я хочу исключить ровно 1 параметр.
Раньше я использовал
req.getParameterMap
Однако, чтобы удалить одно значение, я пытаюсь что-то сделать в строках
def reqParams = req.getParameterMap?.remove('blah');
Я знаю, что вышеупомянутое не совсем работает, но что psuedo-код для того, чего я пытаюсь достичь. Мне действительно нужна новая Карта и исходные объекты req.getParameterMap()
, чтобы выглядеть точно так же, кроме одного отсутствующего ключа. Какой лучший способ достичь этого? Спасибо!
Ответы
Ответ 1
req.getParameterMap
возвращает неизменяемую карту, которая не может быть изменена. Вам необходимо создать новую карту, putAll
из карты параметров и удалить требуемый ключ, который вам не нужен.
def reqParams = [:] << req.getParameterMap()
reqParams.remove('blah')
У вас есть новая карта как reqParams
(без пары нежелательных ключей) и исходная карта параметров.