Por que não faz .Recolher () funciona nos seguintes gstring?
Pergunta
Isso funciona como esperado em um GSP-página:
<td>${Foo.findAllByBar(bar)}</td>
Mas quando a adição de uma declaração a cobrar as quebras de código ..
<td>${Foo.findAllByBar(bar).collect { it.name }}</td>
com
Error 500: Could not parse script [...gsp]: startup failed,
...: 129: expecting '}', found ')'
@ line 129, column 196. 1 error`.
Eu estava sob a impressão de que qualquer código Groovy válido poderia ser colocado em um ${ ... }
gstring e sendo avaliada corretamente / expandida. O que eu estou ausente?
Solução
O analisador GSP não gosta }
dentro do bloco ${...}
. Tente esta:
<%= Foo.findAllByBar(bar).collect { it.name } %>
Outras dicas
Como alternativa, você pode usar o operador de propagação :
<td>${Foo.findAllByBar(bar)*.name}</td>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow