Customizando validator em grails
Upcoming SlideShare
Loading in...5
×
 

Customizando validator em grails

on

  • 1,550 views

Neste artigo veremos como customizar um validator para um atributo específico em uma aplicação web feita em grails.

Neste artigo veremos como customizar um validator para um atributo específico em uma aplicação web feita em grails.

Statistics

Views

Total Views
1,550
Views on SlideShare
1,550
Embed Views
0

Actions

Likes
2
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Customizando validator em grails Customizando validator em grails Document Transcript

  • Atenção este é um post gratuito publicado no site da Devmedia e publicado no Slideshare naconta da própria Devmedia. Sua republicação não é autorizada.Para ler e outros artigos de seu interesse, acesse http://www.devmedia.com.br/Customizando Validator em GrailsNeste artigo veremos como customizar um validator para um atributo específico em uma aplicação webfeita em grails.1. IntroduçãoTodos somos sabedores de que a consistência das informações em umaaplicação, seja ela web ou não, é coisa séria e que devemos estar sempreatentos para não passarmos batidos e incluirmos dados inconsistentes emnosso sistema gestor de base de dados. Como estamos falando especificamentede aplicações web feitas em Grails, quero compartilhar com vocês a forma comque esse framework valida suas informações, além de ensinar como customizaresse tipo de recurso, que é chamado de validator.2. Validação no GrailsAs validações de dados feito a nível de modelo no Grails são realizadasutilizando a API Spring Validator. Essa API, apesar de ser um pouco complexade se utilizar, o Grails, através dos recursos dinâmicos da linguagem Groovy,simplifica essa tarefa disponibilizando para o desenvolvedor um mecanismochamado de constraints que são declarações de regras de validações aplicadasa cada atributos do modelo que necessitem ser validados antes de serempersistidos.Para entendermos melhor como tudo isso funciona, vamos analisar o seguintecódigo:Listagem 1: Código inicial1 class Contato {23 String nome4 String email5 www.devmedia.com.br – Todos os direitos reservados
  • 6 static constraints = { 7 nome(blank:false) email(blank:false,email:true) 8 } 9 10 } 11 No exemplo anterior, a classe Contato possui dois atributos: nome e email. Ambos não podem ser vazios e o atributo email só pode aceitar valor no padrão válido para email. O Grails possui vários validators disponíveis para o desenvolvedor utilizar, como o próprio blank e email, além de size, inList, max, maxSize, min, minSize, notEqual, nullable, unique, url, etc. Porém existe um tipo especial que é utilizado para customizar sua própria validação, que se chama validator. Para usar o validator customizado basta incluir um closure com a expressão de validação. Esse closure envia 2 parâmetros que são: o valor e a instância do modelo. A expressão do closure deve retornar um dos seguintes valores:o Null ou true: Indica que o valor e válido.o Null: Indica que o valor é inválido e usa a mensagem de erro padrão.o String: Código da mensagem de erro presente no arquivo de mensagens.o Lista: Código da mensagem de erro presente no arquivo de mensagens com seus argumentos. Para o leitor entender melhor como tudo isso funciona, veja a seguir, um exemplo de customização de validator. Listagem 2: Customização de Validator class Teste { 1 2 Integer diaSemana 3 String finalSemana www.devmedia.com.br – Todos os direitos reservados
  • 4 String sexo56 static constraints = { diaSemana (validator:{ value, object ->7 return value > 0 && value < 88 })9 finalSemana (validator:{ value, object ->10 if (![‘sábado‘,’domingo’].contains(value)) {11 return ‘custom.erro.finalSemana’12 }13 })14 sexo (validator:{ value, object ->15 if (![‘M‘,’F’].contains(value)) { return [‘custom.erro.sexo’, value]16 }17 })18 }1920 }212223Para concluir nosso exemplo, veja como fica o arquivo de mensagens presenteno diretório i18n.Listagem 3: Concluindo o exemplo1 custom.erro.finalSemana=Valor não permitido, use sábado ou domingo.2 custom.erro.sexo=Valor {0} inválido para sexo, use M ou F. www.devmedia.com.br – Todos os direitos reservados
  • 3. ConclusãoComo podemos perceber, validação de dados em Grails é muito simples deimplementar. Além do framework disponibilizar vários validators, aindapodemos customizar esse recurso da maneira que acharmos necessário paramanter a integridade das informações em nossos projetos. Também vimos quepodemos mapear as mensagens de erro geradas pelos validators de maneirasimples e direta, integrando esse recurso a um outro, também muitoimportante em uma aplicação web, que se chama internacionalização.4. ReferênciasGrails - Validators. Disponívelem:http://grails.org/doc/latest/ref/Constraints/validator.html. Acessado em:07/04/2012Grails - Validations. Disponívelem: http://grails.org/doc/latest/guide/validation.html. Acessado em:07/04/2012 www.devmedia.com.br – Todos os direitos reservados