Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

@Valid não funciona

Rodrigo, Bom dia! Não conseguir fazer o @Valid funcionar.

Meu método ficou assim:

 @Post
    public void adiciona(@Valid Produto produto){
        validator.onErrorUsePageOf(this).formulario();
        dao.adiciona(produto);
        this.result.include("mensagem","Registro cadastrado com sucesso");
        this.result.redirectTo(this).lista();
    }

Na classe Produto fiz isso:

@Min(value=0,message="{produto.quantidade.negativa}")
    private Integer quantidade;

No arquivo messages.properties :

produto.quantidade.negativa = Não pode cadastrar um produto com quantidade negativa!

e no arquivo validation.xml

<?xml version="1.0" encoding="UTF-8"?>

<validation-config xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.1.xsd"
        version="1.1">
    <executable-validation enabled="false"/>
</validation-config>

Não sei o que pode está acontecendo, mas a validação não acontece. Digito todos os dados no formulário e informo o valor 0 para o campo quantidade e mesmo assim o registro é inserido. O que estou fazendo de errado? Pode me ajudar?

2 respostas

Na sua validação você disse que o mínimo era zero, pq ele deveria dar erro de validação?

solução!

Alberto,

Boa noite!!

Estou seguindo o curso daqui da alura e não havia me atentado para isto. Fiz o teste agora e funcionou colocando o @min=1 e passando o valor 0 para o atributo. Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software