4

Grails とシナリオを使用すると、HTTP 要求から渡されたオブジェクトがあり、オブジェクトを反復処理して、次のようにすべての可能なオブジェクトを取得します。

if (params.colors) {
  for (String color in params.colors) {
    println color
  }
}

[Ljava.lang.String が渡された場合 (つまり、params.colors = ["blue","green","yellow"])、出力は期待どおりです。

blue
green
yellow

しかし、params.colors = "blue" の場合、もちろん、groovy は "blue" をトークン化し、次の出力が得られます。

b
l
u
e

すでに配列であるかどうかを確認する必要があると思います。私がこれに間違って近づいているか、それを行うためのグルーヴィーな方法がない限り。

4

1 に答える 1

10

オブジェクトのlistメソッドを使用して、colors パラメータにリストとしてアクセスできます。params

for (String color in params.list('colors')) {
  println color
}

このように、アクションが呼び出された/your_action?colors=red場合/your_action?colors=red&colors=greenでも、色パラメータがまったくない場合でも (そのため、私は を省略しましたif)、params.list('colors')常にリストを返します:)

于 2013-01-17T04:40:26.340 に答える