Erro no validator do vraptor 3 [No validator could be found for type: java.math.BigDecimal]

6 respostas
N

Galera criei um projeto com vraptor 3, mas na hora de salvar a entidade a validação deu pau. o erro é o seguinte:

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: javax.validation.UnexpectedTypeException: No validator could be found for type: java.math.BigDecimal

Coloquei isso no web.xml

<context-param>
	    <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
	    <param-value>pt_BR</param-value>
	</context-param>
	
	<context-param>
          <param-name>br.com.caelum.vraptor.packages</param-name>
          <param-value>br.com.caelum.vraptor.util.hibernate,br.com.caelum.vraptor.converter.l10n</param-value>
          <!-- you can add optional component packages here -->
        </context-param>

Precisa de algo mais além disso?

6 Respostas

G

Como você está fazendo a validação? Se você estiver usando validator.validate(), ele só funciona para entidades, e não para classes como BigDecimal, String, etc.

N

Vixe! Quer dizer que eu não vou poder usar o validator.validate() ? :cry: :cry: :cry:

G

Não. Na verdade você pode usar, mas deve usar da forma correta.

N

Ué, e como seria? Estou usando assim:

Modelo

@Entity
public class Produto {
     ...outras propriedades aqui
        @NotNull @NotEmpty
	private BigDecimal precoCusto;
	
	@NotNull @NotEmpty
	private BigDecimal precoVenda;
}

Controller

@Post @Path("/produtos/")
	public void criar(final Produto produto) {
		validator.validate(produto);
		validator.onErrorUsePageOf(this).novo();
		repositorio.salvar(produto);
		result.include("message", "Produto adicionado com sucesso");
		result.redirectTo(this).listar();
	}
G

Você está usando da forma correta. Achei que você estava tentando usar validator.validate(meuBigDecimalAqui).

Acho que a @Empty só pode ser usada com Strings ou Collections. Até porque você nunca terá um BigDecimal vazio.

N

Puts! Era exatamente isso. A mensagem é que não estava muito legal. Tirei o @NotEmpty e funfou. Valeu pela ajuda.

Criado 4 de maio de 2011
Ultima resposta 4 de mai. de 2011
Respostas 6
Participantes 2