Filtros para renomear variáveis
02/09/2010 00:00
0
Tenho a seguinte dúvida. O meu projecto tem diferentes classes com diferentes atributos. Por exemplo imaginemos a classe Utente com o atributo familiarResponsavel. Ao aceder a /utente/create vejo todos os campos de utente e a variável familiarResponsavel é transformada na label familiar Responsavel. Existe alguma maneira de criar um filtro para aceder aos atributos de uma classe num controlador e transformar o nome dos atributos. Neste caso seria desejável transformar familiarResponsavel em "Familiar Responsável". Ou isto teria de ser feito no controlador da classe?
Tags: Tópicos avançados


0
Boa tarde.

Você pode alterar os templates da sua aplicação de modo que os labels recebam os valores que deseja. Os labels podem, por exemplo, vir de um arquivo de mensagens.
Para modificar os templates você deve primeiro executar o comando grails install-templates no seu projeto e depois alterá-los na pasta seu_projeto/src/templates/scaffolding.
Espero ter ajudado.

Grande abraço!
10/09/2010 00:00


0
Sim, mas como eu tenho 40 classes tinha de fazer 40 templates, que acabava por ser a mesma coisa que editar os 40 gsp's de cada classe. O que eu pretendia era descobrir como se interfere no processo de scaffolding, porque se ela transforma o texto das variáveis então deve haver maneira de interferir nesse processo.
Mas de qualquer maneira obrigada.
16/09/2010 00:00


0
Tudo bom, meu caro?

Você pode ver isso nos gsps da pasta de templates. No create.gsp, por exemplo, você tem o seguinte código:


<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;>
<label for=&quot;${p.name}&quot;><g&#58;message code=&quot;${domainClass.propertyName}.${p.name}.label&quot; default=&quot;${p.naturalName}&quot; /></label>
</td>
<td valign=&quot;top&quot; class=&quot;value \${hasErrors(bean&#58; ${propertyName}, field&#58; '${p.name}', 'errors')}&quot;>
${renderEditor(p)}
</td>
</tr>


Aí é só você mudar nesse ponto da maneira que precisar. No seu caso você devia mudar o &quot;${p.naturalName}&quot; Espero ter ajudado.
16/09/2010 00:00


0
Olá, sim ajudou muito. A questão é que agora eu estou a tentar mudar o valor de p.naturalName com um switch porque tenho muitas variáveis. Mas não está a resultar. Não me dá erro mas não resulta. O código que tenho é:


switch(${p.naturalName})
{
case designacao&#58;
${p.naturalName} = Designação

break;
}



O que tem de errado com esse código?
19/09/2010 00:00


0
Boa noite!

Eu nao cheguei a testar o codigo mas acredito que voce deva usar ${p.naturalName = &quot;Designação&quot;}.
Grande abraco.
19/09/2010 00:00


0
Esse código está dentro de um ciclo each. No meu caso para nomear cerca de 200 variáveis. Se fosse assim eu apenas teria de nomear uma variável.
20/09/2010 00:00



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