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;