1

私はgrailsを初めて使用し、バージョン2.1.1を使用しています

ビューからコントローラーにデータを渡すためのパラメーターを処理してきました。つまり、コントローラーに URL を送信しました。

http://example.com/save?param1=one&param2=two&param3=three&param4=four

次に、URL はコントローラの save() で処理されます。私はそれを使用し、いくつかのパラメータを別のビューに渡します。このようなコード

redirect action: "index", params:params

しかし、リダイレクトに成功すると、すべてのパラメータがインクルードされます (param1,param2, param3 & param4)

http://example.com/index?param1=one&param2=two&param3=three&param4=four

index ビューに param1 を入れたいだけです。現在、次を使用してこれを削除します:

params.remove("param2")
params.remove("param3")
params.remove("param4")

グレイルで複数のパラメータを削除する簡単な方法はありますか?

4

2 に答える 2

4

Igorの答えはおそらくあなたが望むものですが、これで1行で複数のキーを削除できます:

['param1', 'param2', 'param3'].each { params.remove it }

または、これで1つを除くすべてを削除できます:

params.keySet().asList().each { if ('param1' != it) params.remove(it) }

asList()ConcurrentModificationException を回避するためにセットをコピーするために使用しています

于 2013-05-06T04:49:33.740 に答える