Visualiza as informações no View
17/07/2012 22:27
0
Criei 2 Domain Usuario e Especialidade, fiz os relacionamentos entre eles. No meu View eu coloquei :

<g:each status="1" in="${lista}" var="usuario">
<td>${(i % 2) == 0 ? 'a':b}</td>
<td>${usuario.nome}</td>
COLOCAR A ESPECIALIDADE DO USUARIO
<td>${usuario.email}</td>

Eu quero saber como eu coloco no meu View, a informação da tabela especialista?

OBS.: Estou gostando muito de aprender Groovy e Grails. Deixando de lado as "cabeçada" que estou dando. KKK
Até entender os "macetes" Groovy e Grails, vou várias cabeçadas.

Obrigado.
Tags: Visualiza as informações View.


0
Até entender os "macetes" Groovy e Grails, vou dá várias cabeçadas.
17/07/2012 22:52


0
Seguinte Marcos, crie um controller(grails create-controller pacote.nomecontroller), não sei se já criou, crie um método com o mesmo nome da view que pretende mostrar, neste método coloque como retorna a sua lista tipo :


def listarUsuarios(){

[lista:Usuario.list()]
}


então crie uma view na pasta usuario com o nome listarUsuarios.gsp com o seu conteúdo, agora eu conselho você gerar um scaffold(grails generate-all pacote.dominio) dos seus domains e ver o modelo que o grails gera e tomar eles como modelo ;-)
17/07/2012 22:57


0
Amigo,

o atributo status deve conter i e não 1.

Ah, e na verdade é possível invocar a consultado banco direto no GSP se preferir:

<g:each status="1" in="${Usuario.list()}" var="usuario">


Poderia também usar os "findAllByXXX" ;)


0
Lembrando que se for one-to-many (um usuário tem várias especialidades), as especialidades vem como Lazy por default
18/07/2012 13:28


0
Resolvi o problema. Solução :

<tbody>
<g:each status="i" in="${lista}" var="usuario">
<!-- Alternate CSS classes for the rows. -->
<tr class="${ (i % 2) == 0 ? 'a' : 'b'}">
<td rowspan="2" >
${usuario?.nome}
</td>
<g:each in="${usuario?.especialidade}" var="especilidade" status="x">
<td>
${especilidade.tipo}
</td>
</g:each>
<td>
${usuario?.email}
</td>
</tr>
</g:each>
</tbody>


José Yoshiriro, o status=" ", não recebe numéro, só recebe letra.

Mas, valeu pela força.
19/07/2012 03:05


0
Que bom que resolveu, Marcos.

Mas eu mesmo escrevi que só aceitava letra. Só que na hora de colar teu código (no mesmo post, inclusive) esqueci de corrigir e trocar o "1" pelo "i" ^^'

Ah, e vi que você usou o atributo status mas não o usou no segundo laço. Se não for usá-lo, não é necessário declará-lo na tag <g:each> ;)

Outra dica: teu teste de "par/impar" poderia fica um pouquinho mais simples:
<tr class="${ (i % 2)? 'classeSeImpar' : 'classeSePar'}">


Lembre que, em Groovy, quando se aplica um teste lógico num número ele retorna false se o valor for null ou zero.



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