This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Se colocó el parámetro ID para eso de los errores, ya sé el id se puede recuperar | |
// a través del modelo, pero lo que yo quiero es que se vea la misma URL para regresar la vista con | |
// los errores en lugar de hacer un redirect, ya que si hago un redirect, no se muestran los errores del formulario | |
// y por eso regreso mejor la vista ;) | |
@PostMapping(value = "/editar/{id}") | |
public String actualizarProducto(@ModelAttribute @Valid Producto producto, BindingResult bindingResult, RedirectAttributes redirectAttrs) { | |
if (bindingResult.hasErrors()) { | |
if (producto.getId() != null) { | |
return "productos/editar_producto"; | |
} | |
return "redirect:/productos/mostrar"; | |
} | |
Producto posibleProductoExistente = productosRepository.findFirstByCodigo(producto.getCodigo()); | |
if (posibleProductoExistente != null && !posibleProductoExistente.getId().equals(producto.getId())) { | |
redirectAttrs | |
.addFlashAttribute("mensaje", "Ya existe un producto con ese código") | |
.addFlashAttribute("clase", "warning"); | |
return "redirect:/productos/agregar"; | |
} | |
productosRepository.save(producto); | |
redirectAttrs | |
.addFlashAttribute("mensaje", "Editado correctamente") | |
.addFlashAttribute("clase", "success"); | |
return "redirect:/productos/mostrar"; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment