errors.rejectValue()
24/02/2014 18:45
0
Olá pessoal,
Estou com dificuldades com outra coisa que parecia simples mas que não consigo fazer funcionar...
Na minha controller estou fazendo a verificação do valor de um atributo e tentando gerar um "erro" caso não esteja dentro de uma regra. Então faço a verificação e uso o errors.rejectValue(), conforme exemplo abaixo:
purchaseInstance.errors.rejectValue("transactionItem", "purchase.transactionItem.itemLimit", "quantidade insuficiente")

debugando eu consigo acessar o "errors" do objeto "purchaseInstance", aparece a mensagem do erro que eu gerei, quando passo no "if(purchaseInstance.hasErrors())" o erro é detectado e o programa entra no if, abaixo:
if (purchaseInstance.hasErrors()) {
respond purchaseInstance.errors, view:'create', model: []
return
}

só que a mensagem de erro não aparece na tela carregada. Se eu deixo algum campo obrigatório em branco (validação via constraint natural do grails) ele entra no hasErrors e carrega as mensagens do campo em branco e a minha mensagem de validação ("quantidade insuficiente") também é exibida.
ou seja, a mensagem está lá, mas só aparece se alguma constraint definida na domain for violada, se for apenas minha validação usando o "rejectValue()" não aparece.
Tags: validação, rejectValue()


0
Aparentemente o errors.rejectValue() não funciona se tiver ocorrido um ".save()" antes...
24/02/2014 18:59


0
Postar dúvidas no fórum traz sorte ^^
O problema era o save mesmo, o rejectValue() não funciona se tiver ocorrido um save() o objeto (mesmo que sem flush).
É isso, valeus.
24/02/2014 20:24


0
não é só o .save() que gera problemas, o addToXyz() também faz com que a mensagem seja exibida. Tive que trocar o addTo por um add.
25/02/2014 17:49




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