TAG g:each, como sair do loop?
28/10/2014 10:38
0
Olá Pessoal,

Gostaria de uma ajuda.

Eu tenho uma gsp e tenho um loop dentro do outro.
No loop interno, eu gostaria de comparar os valores. Se os valores são iguai, continua no loop, se forem diferentes, queria parar e sair do loop interno e retornar para o loop externo.

Não encontrei nada para parar o loop(g:each), vocês teriam alguma idéia?



<g:each in="${lista}" status="i" var="v">
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">

<g:set var="ordemGrupo" value="${v?.ordemGrupo}" />

<g:each in="${lista}" status="s" var="y">
<tr class="${(s % 2) == 0 ? 'odd' : 'even'}">

<g:if test="${(ordemGrupo == y?.ordemGrupo)}">
IGUAL
</g:if>
<g:else>
DIFERENTE
BREAK;;
</g:else>

</tr>
</g:each>

</tr>
</g:each>



Obrigado,
Tags: g:each


0
Mas seriam dois loops sobre o mesmo array?

Mas encurtando a resposta ela é NÃO. Não existe uma forma colocar um break dentro do <g:each /> tag. Embora exista um workaround para isso.

Cria uma tag que passe pela sua lista e envia uma condição para ela.

É que eu não entendi pq vc vai percorrer a mesma lista 2 vezes, por isso não criei nenhuma solução de exemplo, mas boa sorte com o projeto.

Att,


1
Encongtrei no link http://grails.asia/grails-while-tag-example/ algo que talvez ajude:
<g:set var="counter" value="${0}"/>
<g:while test="${counter < 5}">
<g:set var="counter" value="${counter+1}"/>
<p>The value is ${counter}</p>
</g:while>



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto