Como comparar variáveis dentro de <g:while>
15/01/2016 10:28
0
Olá,

Quero comparar duas variáveis dentro da tag g:while. Exemplo:

<g:set var="x" value="${1}" />
<g:set var="y" value="${variavelRecebidaDoController}" />

<g:while test="${x <= y}">
<li><a href="#">${x}</a></li>
<g:set var="x" value="${x++}" />
</g:while>

Fazendo a comparação dessa forma a aplicação entra em loop e eu ganho de presente um OutOfMemory.

É errado comparar dessa maneira? Qual seria a forma correta?

Obrigado
Tags: Grails, Tags, While,Loop


0
Tente:
<g:each in="${[1..variavelRecebidaDoController]}" status="x">
    <li><a href="#">${x}</a></li>
</g:each>


0
Apesar de pouco recomendável, lembre-se que você também pode incluir scriptlets em seu código GSP, tal como no exemplo abaixo:

<%
  x++ // incrementa a variável x pra você no script
%>


0
Magno

A sua ideia funcionou. De cara tentei fazer com o while. Parei para ler a documentação da tag each e realmente tem essa forma exposta lá.
Só um complemento : A tag each precisa ter um atributo var definido. E a declaração da lista no atributo in precisa ser com parenteres..testei com colchetes e não funcionou.

<g:each in="${(1..variavelRecebidaDoController)}" status="i" var="x">
<li><a href="#">${x}</a></li>
</g:each>?

Kico?
Bem lembrado. Porém detesto scriptlets, acho que deixa o código muito sujo. Procuro usar somente em casos em que não tenha outra opção.

Obrigado pela ajuda pessoal!



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