Alterando scaffold padrão
12/05/2013 22:40
0
Prezados,

Criei uma classe padrão e usei o scaffold para criar o crud padrão.

Como faço para no list não retornar todo conteúdo da tabela?

Preciso retornar somente os registros onde o valor de um determinado campo seja igual a uma variável de sessão.

Evaldo Wolkers
Tags: List, scaffold, crud padrão


0
Opa,

basta que você reescreva sua action list do seu controlador para que retorne apenas o que você quer.

Por padrão, o scaffolding vai te retornar algo como no código abaixo:


def list() {
[objectList:Classe.list()]
}


Basta trocar este código para algo como


def list() {
[objectList:(seu método de busca)]
}


Seu método de busca pode ser um finder dinâmico, criteria, etc. Caso seja um comportamento a ser aplicada a todas as entidades, a solução é você instalar os templates no seu projeto (grails install-templates), alterá-los (vão estar no diretório src do projeto) e voilá, vão se aplicar a todos os seus CRUDs cujo scaffolding seja dinâmico e nos estáticos quando forem ser gerados.


0
Meu método de busca poderia ser assim:

def list() {
Cidade cidade = Cidade.findById(1); //Coloquei fixo para testar

[objectList:(Ruas.findAllByCidade(cidade))]
}

Tentei assim e deu erro

Evaldo Wolkers.
12/05/2013 23:53


0
Evaldo, qual o erro que deu? Na realidade, o nome padrão no scaffolding, se não me engano, não é objectList, é outro. Muito provavelmente o erro que está dando no seu GSP é porque está esperando uma variável com nome diferente para representar a lista de objetos a serem expostos para o usuário.


0
Corrigindo a última linha:
[cidade:(Cidade.findAll)]

Evaldo Wolkers.
13/05/2013 00:05


0
Este é o método list:
def list() {
Tipo tipo = Tipo.findById(1);

[Campanha:(Campanha.findAllByTipo(tipo))]
}


E este é o erro:
2013-05-12 21:08:04,376 [tomcat-http--30] ERROR errors.GrailsExceptionResolver - GrailsTagException occurred when processing request: [GET] /ProjetoTeste/Campanha/list
Tag [paginate] is missing required attribute [total]. Stacktrace follows:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Tag [paginate] is missing required attribute [total]
at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)
at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Tag [paginate] is missing required attribute [total]
at E__Users_Evaldo_Downloads_springsource_vfabric_tc_server_developer_2_8_2_RELEASE_base_instance_wtpwebapps_ProjetoTeste_WEB_INF_grails_app_views_Campanha_list_gsp$_run_closure2.doCall(E__Users_Evaldo_Downloads_springsource_vfabric_tc_server_developer_2_8_2_RELEASE_base_instance_wtpwebapps_ProjetoTeste_WEB_INF_grails_app_views_Campanha_list_gsp:92)
at E__Users_Evaldo_Downloads_springsource_vfabric_tc_server_developer_2_8_2_RELEASE_base_instance_wtpwebapps_ProjetoTeste_WEB_INF_grails_app_views_Campanha_list_gsp.run(E__Users_Evaldo_Downloads_springsource_vfabric_tc_server_developer_2_8_2_RELEASE_base_instance_wtpwebapps_ProjetoTeste_WEB_INF_grails_app_views_Campanha_list_gsp:95)
... 5 more
May 12, 2013 9:08:04 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'grails-errorhandler'
13/05/2013 00:10


0
Descobri que o erro era por causa do parâmetro:

CampanhaInstanceTotal

Mas coloco assim para teste e não retorna nenhum registro:


def list() {
[Campanha:(Campanha.findAll()),CampanhaInstanceTotal:Campanha.count()]
}


Evaldo Wolkers.
13/05/2013 02:33


0
Funcionou assim:

def list() {
Tipo tipo = Tipo.findById("64");
[campanhaInstanceList:Campanha.findByTipo(tipo), campanhaInstanceTotal:Campanha.count() ]
}

Grato,

Evaldo Wolkers.
13/05/2013 14:54



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