Package org.joedayz.corespringtest.web.controller

Source Code of org.joedayz.corespringtest.web.controller.ProductController

package org.joedayz.corespringtest.web.controller;

import java.math.BigDecimal;
import java.util.List;

import org.joedayz.corespringtest.model.Category;
import org.joedayz.corespringtest.model.Product;
import org.joedayz.corespringtest.service.ProductManager;
import org.joedayz.corespringtest.web.validator.ProductValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomNumberEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;

@Controller
public class ProductController {

  @Autowired
  private ProductManager productManager;
 
  @Autowired
  private ProductValidator productValidator;
 
  @InitBinder
  public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(BigDecimal.class,
        new CustomNumberEditor(BigDecimal.class, true));
  }
 
  @RequestMapping("/inicio.htm")
  public void inicio() {
   
  }

  @RequestMapping("/productList.htm")
  public void productList(Model model,
      @ModelAttribute("product") Product product) {

    List<Product> products = productManager.getProductsList(product);
    model.addAttribute("products", products);
    model.addAttribute("product", product);
   
  }

  @RequestMapping(value = "/productView.htm", method = RequestMethod.GET)
  public @ModelAttribute("product")Product productView
      (@RequestParam(value = "idProduct", required = false) Integer idProduct) {

    if (idProduct != null) {
      Product product = productManager.getProductById(idProduct);
      return product;
    }
    return new Product();
  }

  @RequestMapping(value = "/productView.htm", method = RequestMethod.POST)
  public String saveProduct(@ModelAttribute("product") Product product,
      BindingResult result, SessionStatus status) {

    try {
     
      productValidator.validate(product, result);
      if (result.hasErrors()) {
        return "productView";
      }
      productManager.saveProduct(product);
      return "redirect:productList.htm";
     
    } catch (Exception e) {
      return "productView";
    }
  }

  @RequestMapping("/deleteProduct.htm")
  public String deleteProduct(
      @RequestParam(value = "idProduct", required = false) Integer idProduct) {

    productManager.deleteProduct(idProduct);
    return "redirect:productList.htm";
  }
 
  @ModelAttribute("categoriesTypes")
  public List<Category> listarCategories() {

    List<Category> categoriesTypes = productManager.getCategoriesTypesList();
    return categoriesTypes;
  }
 
}
TOP

Related Classes of org.joedayz.corespringtest.web.controller.ProductController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.