这在GSP页面中按预期工作:
<td>${Foo.findAllByBar(bar)}</td>
但是当添加一个collect语句时,代码会中断..
<td>${Foo.findAllByBar(bar).collect { it.name }}</td>
带
Error 500: Could not parse script [...gsp]: startup failed,
...: 129: expecting '}', found ')'
@ line 129, column 196. 1 error`.
我的印象是,任何有效的Groovy代码都可以放在GString ${ ... }
中并正确评估/扩展。我错过了什么?
答案 0 :(得分:6)
或者,您可以使用spread operator:
<td>${Foo.findAllByBar(bar)*.name}</td>
答案 1 :(得分:4)
GSP解析器不喜欢}
块中的${...}
。试试这个:
<%= Foo.findAllByBar(bar).collect { it.name } %>