2013-05-31 22 views
30

これは非常に単純な質問ですが、私はGroovyにはとても新しく、これはしばらくの間苦労してきたことです。私はHttpServletRequestを持っていて、私はそのパラメータで何かする必要があります。しかし、私は正確に1つのパラメータを除外したい。Groovyマップから指定キーを削除する

は以前、私は一つの値を削除するには、しかし

req.getParameterMap 

を使用していた、私は上記のはかなりの仕事をしないことを知っている

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

の線に沿って何かをしようとしています、それは私が達成しようとしているものの擬似コードです。私は本当に新しい地図と元のreq.getParameterMap()オブジェクトが1つの欠けているキーを除いて全く同じに見える必要があります。これを達成する最良の方法は何ですか?ありがとう!

+3

grailsを使用しているのか、JavaアプリケーションにGroovyサポートを追加していますか? –

+0

Javaアプリケーション内でちょうど使用されています。 – JToland

答えて

41

req.getParameterMapは、変更できない不変のマップを返します。パラメータマップから新しいマップputAllを作成し、不要な必要なキーを削除する必要があります。

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

あなたは(望ましくないキーと値のペアなし)reqParamsなどの新マップと元のパラメータマップを持っています。

+0

ああ、意味があります。私はそれが不変であることを気づかなかった。ありがとう! – JToland

関連する問題