Grails 2.3.4
コントローラで、params の可変項目 xxyyzz を リストで受け取る場合、
controller上で、
1 2 3 |
def xxxList = params.xxyyzz as List |
とか、
1 2 3 4 5 |
params.xxyyzz.each { ...do somthing with it } |
のように扱っていると、うまくいかない時がある。
例えば、以下のように項目が二つあるときは、
1 2 3 |
<a href="/zzzz/zzzz?xxyyzz=10200&xxyyzz=2300">link</a> |
xxyyzz は、 [10200, 2300] のリストになるが、
一つの時は、
1 2 3 |
<a href="/zzzz/zzzz?xxyyzz=10200">link</a> |
as List や、 each で無理にリストとして扱おうとすると、
[1,0,2,0,0] となってしまう。
これを回避するには、
1 2 3 |
params.list('xxyyzz') |
とすれば、必ずリストとして値を取れる。
あとは、ループで回すなり、each で扱えばよい。