Acessando métodos à partir de uma view
06/11/2013 08:36
0
Bom dia.

Tenho dois domínios: Livros e Autores.

Na view de livros preciso criar um "select" que traga apenas autores do Brasil por exemplo.

Caso eu use
<td><g:select id="autores" name="autores.id" from="${br.com.exemplo.autores.list()}" optionKey="id" value="${idAutor}" class="many-to-one" noSelection="['null': '']"/></td>

Será exibido no objeto "select" todos autores cadastrados.

Aí fui no Controller de autores e criei um método chamado listAutoresBrasil.

Quando mudo o código do objeto select para:
<td><g:select id="autores" name="autores.id" from="${br.com.exemplo.autores.listAutoresBrasil()}" optionKey="id" value="${idAutor}" class="many-to-one" noSelection="['null': '']"/></td>

Ocorre o seguinte erro:

Error 500: Internal Server Error

Class
groovy.lang.MissingMethodException
Message
No signature of method: br.com.exemplo.autores.listAutoresBrasil() is applicable for argument types: () values: []

Alguém pode me ajudar?

Evaldo Wolkers.
Tags: select, view, métodos


0
Olá Evandro!

Acho que você está confundindo um pouco as coisas.

no seu caso a classe de dominio Autores possui o metodo list() por isso funciona.
Voce deve criar o método listAutoresBrasil() dentro da classe Autores e não AutoresController


class Autores {
static def listAutoresBrasil(){
...
}
}


0
Criando este método

class Autores {
static def listAutoresBrasil(){
...
}
}

Como eu faço para retornar a lista de autores passando um inteiro como parâmetro, por exemplo, em Autores tenho o país 1 que é Brasil, e "1" eu tenho em uma variável de sessão, exemplo session.pais.

Aí eu preciso na view, chamar este método passando o conteúdo da variável de sessão para listaAutoresBrasil().

Como ficaria o corpo do método listAutoresBrasil?

Evaldo Wolkers.
06/11/2013 10:29


0
Consegui.


O método que criei no domínio foi:

static def listAutoresPais(Integer idPais){
return Autores.where { (pais.id==idPais)
}
}


Obrigado Leandro.

Evandro Wolkers.
06/11/2013 10:48



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