Links dos controladores no index.gsp
08/11/2013 07:43
0
Bem galera, sou bem novo no Grails ( e muitas outras coisas que ele me apresentou). E ao ir explorando a aplicação me deparei com algo que está me causando certo desconforto. Já dei uma vasculhada em vários lugares mas nada chegava ao que seria minha solução, até por que acho que é algo bem simples e por minha inexperiência não estou conseguindo resolver.

Pois vamos lá.
De acordo com as linhas de código abaixo, é gerado automaticamente no gsp uma lista com todos os links dos meus controladores através de uma estrutura de repetição:

<ul>	
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
</g:each>
</ul>

Então pelo fato de estar gerando dinamicamente não estou conseguindo tratar as estruturas geradas no CSS, gostaria de saber se tem alguma maneira de quando essa estrutura for executada ter alguma maneira de definir alguma estrutura ( div, id , bloco, etc...) para cada link.

Desde já agradeço a quem puder colaborar. :)
Tags: Grails GSP CSS HTML


0
Olá Lucas!

Não sei se entendi qual a sua dúvida, mas o arquivo gsp é um html que além de tags html você pode utilizar as taglibs.

No seu exemplo você esta utlizando a tablib <g:each> esta tag está realizando um loop em todos os controladores da sua aplicação ordenando eles por nome e a cada iteração alimenta a variavel "c".

Se você quiser alterar o conteúdo do que você quer escrever no html mude o que está dentro da tag <g:each>

Exemplo:

<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<div class="meucss">
<g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link>
</div>
</g:each>


0
Cara é mais ou menos isso. Nesse exemplo que você passou , se cria uma div pra cara controle certo?

Supondo que eu queria atribuir coisas diferentes para cada um dos controladores, eles teriam que estar em estruturas separadas, certo? ( corrija-me caso esteja errado, como falei estou aprendendo)

E caso eu tenho muitos controladores fica meio difícil colocar coisas específicas para cada um.

Não sei se vai ficar confuso mas...


<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<div class="meucss">
<g:link controller="${c.PRIMEIROcontrole}">${c.name}</g:link>
</div>
<div class="meucss">
<g:link controller="${c.SEGUNDOcontrole}">${c.name}</g:link>
</div>

...

</g:each>



Pode até ser questão de uso das tags, não sei, por isso que venho aqui pedir ajuda.
E novamente, obrigado pela colaboração.
08/11/2013 12:25


0
Olá Lucas!

Deixa ver se eu entendi!

Digamos que você tem algumas particularidades do tipo não quer que apareça todos os controladores, ou quer customizar um determinado controller.

Uma das opções é não utilizaro <g:each>

<div class="meucss1">
<g:link controller="controller1">Texto do link do controller 1</g:link>
</div>
<div class="meucss2">
<g:link controller="controller2">Texto do link do controller 2</g:link>
</div>


outra opção é utilizar uma condição dentro do <g:each>


<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<div class="meucss">
<g:if test="${c.logicalPropertyName == 'controller1'}">
<div class="meucss1">
<g:link controller="controller1">Texto do link do controller 1</g:link>
</div>
</g:if>
</div>
</g:each>


Aconselho você a estudar um pouco mais o Grails, este link tem um bom conteúdo para quem está começando


0
Ei cara, fiquei esses dias sem net, e tava com tanta coisa pra fazer que ainda não dei mais uma programada no trabalho, mas assim que que conseguir aplicar as correções eu venho aqui avisar.


Obrigado. :D
15/11/2013 13:43



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