Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException

Bom dia. Quando submeto o formulário sem inserir valor no campo Páginas explore a exceção. Quando o campo recebe algum inteiro funciona normalmente (positivo não retorna o erro e negativo retorna a mensagem). Segue o método validate().

    public void validate(Object target, Errors error) {

        ValidationUtils.rejectIfEmpty(error, "nome", "field.required");
        ValidationUtils.rejectIfEmpty(error, "descricao", "field.required");

        Produto p = (Produto) target;        
        if (p.getPaginas() <= 0) {
            error.rejectValue("paginas", "field.required");
        }
    }

Esse é o arquivo message.properties:

field.required = Campo obrigatório
field.required.produto.titulo = Título obrigatório
field.required.produto.descricao = Descrição obrigatório
field.required.produto.paginas = Informe a quantidade de páginas corretamente
typeMismatch = o tipo do dado é inválido
typeMismatch.produto.páginas = Informe um número válido

E o método messageSource():

    public MessageSource messageSource(){
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("/WEB-INF/message");
        messageSource.setDefaultEncoding("UTF-8");
        messageSource.setCacheSeconds(1);

        return messageSource;
    }
1 resposta
solução!

Alterei o método validate() e funcionou:

    @Override
    public void validate(Object target, Errors error) {

        ValidationUtils.rejectIfEmpty(error, "nome", "field.required");
        ValidationUtils.rejectIfEmpty(error, "descricao", "field.required");
        //Adicionei essa validação
        ValidationUtils.rejectIfEmpty(error, "paginas", "typeMismatch");

        Produto p = (Produto) target;        
        //Inclui na condição para verificar primeiro se o atributo é nulo, pois estou trabalhando com o tipo Integer
        if (p.getPaginas() != null && p.getPaginas() <= 0) {
            error.rejectValue("paginas", "field.required");
        }
    }