Como criar uma pesquisa (filtro).
30/11/2011 20:03
0
Olá.

Estive ouvindo a aula no endereco http://www.itexto.net/devkico/?page_id=1016 (Introdução > Grails: o quê e porquê?) e consegui atraves dos passos utilizados reproduzir o projeto mencionado na aula.
Mas como sou novo no estudo de grails (apenas uma semana), gostaria de saber como pode ser implementado no codigo grails para que seja inserido um campo de texto para pesquisa de um determinado campo, por exemplo atributo nome, para quando o usuario digitar "Projeto 1" por exemplo somente apresente o registro (nome = "Projeto 1") (http://localhost:8080/Projeto/projeto/list).

Agradeço a ajuda...

Ubiratan.

Tags: busca, exibir, selecionar registros


0
Oi Ubiratan,

uma solução interessante é você usar uma busca por criteria. Você pode criá-la em tempo de execução. Então, por exemplo: vamos supor que você possua um controller e, neste controller, haja dois parametros: valorBusca e tipoBusca.

tipoBusca poderia ser, por exemplo: um combo cujos valores identifiquem os nomes dos campos e, valorBusca, o nome já diz: é o valor a ser buscado :)

No seu controlador, você poderia implementar um código similar ao abaixo:


def buscaQuente = {
def resultado = SuaEntidade.withCriteria {
eq(params.tipoBusca, params.valorBusca)
}
[resultado:resultado]
}


0
Ok.

Eu acrescentei o seguinte codigo no arquivo list.gsp

<g:form action="busca">
<g:textField name="valor" />
<g:select name="tipo" from="${['Nome', 'Descricao']}" valueMessagePrefix="tipo" />
<g:submitButton name="pesquisa" value="Pesquisa" />
</g:form>

e acrescentei no arquivo ProjetoController.groovy a seguinte declaracao:

def busca = {
def resultado = Projeto.withCriteria {
eq (params.tipoBusca, params.valorBusca)
}
[resultado:resultado]
}

Gostaria de uma ajuda para incluir no controlador acima o codigo para listar os registros baseados na busca acima.

Ao submeter o formulario estou obrendo o erro:

Error 500: Executing action [busca] of controller [projeto.ProjetoController] caused exception: could not resolve property: Nome of: projeto.Projeto
Servlet: grails
URI: /Projeto/grails/projeto/busca.dispatch
Exception Message: could not resolve property: Nome of: projeto.Projeto
Caused by: could not resolve property: Nome of: projeto.Projeto
Class: ProjetoController
At Line: [110]
Code Snippet:



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