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

Produto nao é persitido

Apos fazer todas as configuracoes de Multipart e incluir a DIV pra escolher o arquivo, quando eu clico em cadastrar nao da nenhuma exception, porem ele nao grava o produto e volta para o formulario. Debuguei o codigo e por algum motivo que nao sei oq eh, ele esta entrando no if(result.hasErrors) e por isso volta pro formulario. Agora, nao faco ideia do pq o result esta voltando com erros..alguem poderia me ajudar? Meu codigo de validacao eh esse:

@Override
    public void validate(Object target, Errors errors) {
        Produto produto = (Produto) target;
        ValidationUtils.rejectIfEmpty(errors, "titulo", "field.required");
        ValidationUtils.rejectIfEmpty(errors, "descricao", "field.required");

        if (produto.getPaginas() <= 0) {
            errors.rejectValue("paginas", "field.required");
        }

    }

Obrigado

3 respostas

no debug, dentro da LinkedList de errors encontrei essa mensagem: "Failed to convert property value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String' for property 'sumario'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile] to required type [java.lang.String] for property 'sumario': no matching editors or conversion strategy found"

Bom, pelo que eu entendi, a classe ProdutoValidation estava tentando validar o atributo sumarioPath (nao sei pq), e esse atributo provavelmente era null pq nao havia nenhum input com o name sumarioPath (no video o professor pois o nome do input de sumario), qdo mudei o name do input pra sumarioPath e o nome da variavel MultiPart de sumario pra sumarioPath tudo funcionou ok... Alguma explicacao?

solução!

Solucionado. O erro foi que num primeiro momento no video, foi criado o atributo sumario na classe Produto, mas logo apos foi mudado para sumarioPath e eu nao corrigi os getters e settes, e ai ele tentava fazer o bind do name="sumario" do form com o metodo setSumario da classe Produto. =) Valeu galerinha