为什么.collect()不能在以下GString中工作?

kno*_*orv 4 grails groovy gsp gstring

这在GSP页面中按预期工作:

<td>${Foo.findAllByBar(bar)}</td>
Run Code Online (Sandbox Code Playgroud)

但是当添加一个collect语句时代码会中断..

<td>${Foo.findAllByBar(bar).collect { it.name }}</td>
Run Code Online (Sandbox Code Playgroud)

Error 500: Could not parse script [...gsp]: startup failed,
     ...: 129: expecting '}', found ')'
     @ line 129, column 196. 1 error`.
Run Code Online (Sandbox Code Playgroud)

我的印象是任何有效的Groovy代码都可以放在GString中${ ... }并正确评估/扩展.我错过了什么?

Mat*_*man 6

或者,您可以使用扩展运算符:

<td>${Foo.findAllByBar(bar)*.name}</td>
Run Code Online (Sandbox Code Playgroud)