Como criar Filtro???
06/06/2013 00:44
0
Bom pessoal, estou iniciando em grails e estou fazendo um projeto ao qual é designado a uma escola:
o projeto está matriculando alunos em vários cursos...
Portanto quando vou ver a lista de matriculados aparece todos matriculados. Então eu queria criar um filtro para por expemplo mostrar apenas alunos matriculados em informática, alunos matriculados em administração.
Não sei se é possivel, mas se for, por favor me ajudem


Muito Obrigado!!!!
Tags: Filtro em grails


0
Amigo,

se vc quer criar filtros este link irá te ajudar: http://grails.org/doc/2.2.1/ref/Command%20Line/create-filters.html

porém para esta finalidade que vc está querendo uma simples busca no controlador resolveria seu problema.
06/06/2013 13:21


0
ivgsilva,

muito obrigado pela resposta!!!

Eu criei o filtro mais não tenho a minima ideia de como utilizar...

Se vc souber por favor me ajude.

Muito obrigado!!!
06/06/2013 18:24


0
ivgsilva,

para ficar um pouco mais claro, fiz um projeto aqui como exemplo e vou te mostar para ficar mais claro:
package teste

class Matricula {
String nome
String curso
static constraints = {
nome(blank:false)
curso(blank:false,inList:[" ","Informática","administração"])
}
}


Agora se você me puder me madar um passo a passo.

Muito obrigado!!!
06/06/2013 18:54


0
Olá,
Pelo que entendi, você quer fazer um filtro de busca em uma tela que exibe a listagem de alunos.
Para esse domain Matricula, basta você filtrar pelo atributo curso desta forma:
Matricula.findAllByCurso('Informática')
ou
Matricula.withCriteria {
eq('curso', 'Informática')
}
ou
Matricula.where { curso == 'Informática'}

[...]

Existem n formas de fazer uma busca e vc deve procurar a que se adequa melhor ao caso.

O curso deve ser passado como parâmetro ao seu controller para que o filtro seja dinâmico:

Matricula.findAllByCurso(params.curso)

Mas cuidado com a arquitetura do seu domínio que está muito simplista e meio que não orientada a objetos. Imagino que os elementos curso e nome (aluno) deveriam ser um objeto relacionado (sem entrar em mais detalhes). Ex:

class Matricula {
String codigo //número da matricula
Aluno aluno
Curso curso
static constraints = {
numero(nullable: false, blank: false)
nome(nullable: false)
curso(nullable: false)
}
}

class Aluno {
String nome
[...]
static constraints = {
[...]
}
}

class Curso {
String nome
[...]
static constraints = {
[...]
}
}
07/06/2013 11:33


0
Onde eu coloco essa parte:
Matricula.findAllByCurso('Informática')
ou
Matricula.withCriteria {
eq('curso', 'Informática')
}
ou
Matricula.where { curso == 'Informática'}

[...]





-------------------------------------------------
Matricula.findAllByCurso(params.curso)
08/06/2013 19:26


0
Alex,

Isso vai lhe retornar uma lista de Matriculas. Você coloca na camada que achar conveniente, normalmente em um Service ou Controller.
Pela convenção do Grails, isso deve ser retornado ao seu controller, para que você coloque no model que vai para a página renderizada. Ex:

MatriculaController {

def list() {
def matriculaList = Matricula.findAllByCurso(params.curso)
render(template: 'list', model: matriculaList)
}

}

Sem querer ser arrogante, mas aparentemente você está fazendo as coisas na empiria. Recomendo estudar mais sobre o assunto, porque isso é básico no grails ou em qualquer arquitetura MVC.
08/06/2013 23:36



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