La redirección es un salto del cliente, 2 solicitudes, 2 respuestas, por lo que los datos enviados al principio se perderán en este proceso.
Remitido como un salto de servidor, 1 solicitud, 1 respuesta, los datos se transferirán a la página para saltar.
En operaciones crud, las operaciones que no requieren visualización, como adiciones, eliminaciones y modificaciones, requieren redirección, de lo contrario, los envíos múltiples pueden producir algunos errores adicionales.
Cuando necesita pasar parámetros, debe saltar a la página de edición cuando no ingresa el atributo de edición, luego se utiliza el reenvío.
@RequestMapping ("admin_product_add" ) public String add (Modelo de modelo, Producto p) { p.setCreateDate ( nueva Fecha ()); productService.add (p); return "redirect: admin_product_list? cid =" + p.getCid (); } @RequestMapping ( "admin_product_delete" ) public String delete ( int id) { Product p = productService.get (id); productService.delete (id); return "redirect: admin_product_list? cid =" + p.getCid (); } @RequestMapping ( "admin_product_edit") edición de cadena pública (modelo de modelo, id int ) { Producto p = productService.get (id); Categoría c = categoryService.get (p.getCid ()); p.setCategory (c); model.addAttribute ( "p" , p); devolver "admin / editProduct" ; } @RequestMapping ( "admin_product_update" ) Actualización de cadena pública (Producto p) { productService.update (p); return "redirect: admin_product_list? cid =" + p.getCid (); }