2
respostas

ValidatorBean não retorna mensagem de erro de fields

No meu método tenho post de salvar uma conta, com redirecionamente de erros

@RequestMapping(value = "/financeiro-contasaida-crud-adicionar", method = RequestMethod.POST)
    public ModelAndView cadastrar(@Valid ContaSaida contaSaida, BindingResult result, RedirectAttributes attributes,
            SessionStatus status) {
        if (result.hasErrors()) {
            return crud("adicionar", null, contaSaida);
        }
        contaSaidaService.salvar(contaSaida);
        status.setComplete();
        return listar("id", contaSaida, "ContaSaida adicionado com sucesso!");
    }

Quando dá o erro ele chama o método de crud pra redirecinar para a página

@RequestMapping(value = "/financeiro-contasaida-crud/{opcao}/{id}", method = RequestMethod.POST)
    public ModelAndView crud(@PathVariable("opcao") String opcao, @PathVariable("id") Integer id,
            ContaSaida contaSaida) {
        ModelAndView modelAndView = new ModelAndView("/financeiro/contaSaida-crud");
        if (id != null)
            contaSaida = contaSaidaService.pesquisarPorID(id);
        if (opcao.equals("adicionar"))
            contaSaida.setId(null);
        System.out.println(contaSaida);
        List<Fornecedor> fornecedores = fornecedorService.listar();
        List<TipoSaida> tiposSaida = tipoSaidaService.listar();
        List<TipoDocumentoSaida> tiposDocumentoSaida = tipoDocumentoSaidaService.listar();
        if (contaSaida == null) {
            contaSaida = new ContaSaida();
            contaSaida.setSituacao(SituacaoFinanceira.A);
        } else {
            contaSaida.setSituacao(SituacaoFinanceira.A);
        }
        modelAndView.addObject("opcao", opcao);
        modelAndView.addObject("status", Arrays.asList(Status.values()));
        modelAndView.addObject("situacoes", Arrays.asList(SituacaoFinanceira.values()));
        modelAndView.addObject("contasaida", contaSaida);
        modelAndView.addObject("fornecedores", fornecedores);
        modelAndView.addObject("tiposSaida", tiposSaida);
        modelAndView.addObject("tiposDocumentoSaida", tiposDocumentoSaida);
        return modelAndView;
    }

Ele chega a retornar, mas não exibe as mensagem de erros

@RequestMapping(value = "/financeiro-contasaida-crud/{opcao}/{id}", method = RequestMethod.POST)
    public ModelAndView crud(@PathVariable("opcao") String opcao, @PathVariable("id") Integer id,
            ContaSaida contaSaida) {
        ModelAndView modelAndView = new ModelAndView("/financeiro/contaSaida-crud");
        if (id != null)
            contaSaida = contaSaidaService.pesquisarPorID(id);
        if (opcao.equals("adicionar"))
            contaSaida.setId(null);
        System.out.println(contaSaida);
        List<Fornecedor> fornecedores = fornecedorService.listar();
        List<TipoSaida> tiposSaida = tipoSaidaService.listar();
        List<TipoDocumentoSaida> tiposDocumentoSaida = tipoDocumentoSaidaService.listar();
        if (contaSaida == null) {
            contaSaida = new ContaSaida();
            contaSaida.setSituacao(SituacaoFinanceira.A);
        } else {
            contaSaida.setSituacao(SituacaoFinanceira.A);
        }
        modelAndView.addObject("opcao", opcao);
        modelAndView.addObject("status", Arrays.asList(Status.values()));
        modelAndView.addObject("situacoes", Arrays.asList(SituacaoFinanceira.values()));
        modelAndView.addObject("contasaida", contaSaida);
        modelAndView.addObject("fornecedores", fornecedores);
        modelAndView.addObject("tiposSaida", tiposSaida);
        modelAndView.addObject("tiposDocumentoSaida", tiposDocumentoSaida);
        return modelAndView;
    }

Meu Model ContaSaida


@Entity
public class ContaSaida extends AuditModel {


    private static final long serialVersionUID = -8161685241778815178L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @NotBlank(message="Descrição é obrigatória")
    private String nome;
    private String codigo;
    private Status status;
    private String observacao;
2 respostas

Luiz bom dia, coloca alguns sysos dentro de:

if (result.hasErrors()) {
            return crud("adicionar", null, contaSaida);
        }

Para vermos se os erros estão no result

Coloquei no logs e retornou o erros de campos no result.