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.
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!!!
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 = {
[...]
}
}
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)
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.