@RequestMapping( value = {"/delete-producto-{descripcion}"}, method = RequestMethod.GET) public String delete(@PathVariable String descripcion) { productoService.deleteProductoByDescripcion(descripcion); return "redirect:/list"; }
/** This method will list all existing productos. */ @RequestMapping( value = {"/", "/list"}, method = RequestMethod.GET) public String listProductos(ModelMap model) { List<Producto> productos = productoService.findAllProductos(); model.addAttribute("productos", productos); return "productoslist"; }
/** This method will provide the medium to update an existing Producto. */ @RequestMapping( value = {"/edit-producto-{descripcion}"}, method = RequestMethod.GET) public String editProducto(@PathVariable String descripcion, ModelMap model) { Producto producto = productoService.findByDescripcion(descripcion); model.addAttribute("producto", producto); model.addAttribute("edit", true); return "registration"; }
/** * This method will be called on form submission, handling POST request for saving in database. It * also validates the input */ @RequestMapping( value = {"/newProducto"}, method = RequestMethod.POST) public String saveProducto(@Valid Producto producto, BindingResult result, ModelMap model) { if (result.hasErrors()) { return "registration"; } /* * Preferred way to achieve uniqueness of field [sso] should be implementing custom @Unique annotation * and applying it on field [sso] of Model class [Producto]. * * Below mentioned peace of code [if block] is to demonstrate that you can fill custom errors outside the validation * framework as well while still using internationalized messages. * */ if (!productoService.isProductoDescripcionUnique(producto.getId(), producto.getDescripcion())) { FieldError descripcionError = new FieldError( "producto", "descripcion", messageSource.getMessage( "non.unique.descripcion", new String[] {producto.getDescripcion()}, Locale.getDefault())); result.addError(descripcionError); return "registration"; } productoService.saveProducto(producto); model.addAttribute( "success", "Producto " + producto.getDescripcion() + " registered successfully"); // return "success"; return "registrationsuccess"; }
/** * This method will be called on form submission, handling POST request for updating in database. * It also validates the input */ @RequestMapping( value = {"/edit-producto-{descripcion}"}, method = RequestMethod.POST) public String updateProducto( @Valid Producto producto, BindingResult result, ModelMap model, @PathVariable String descripcion) { if (result.hasErrors()) { return "registration"; } productoService.updateProducto(producto); model.addAttribute( "success", "Producto " + producto.getDescripcion() + " updated successfully"); return "registrationsuccess"; }