Guest User

Untitled

a guest
Mar 18th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. /**
  2. *
  3. */
  4. package controller;
  5.  
  6. import java.util.Arrays;
  7. import java.util.LinkedHashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10.  
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Controller;
  13. import org.springframework.ui.Model;
  14. import org.springframework.web.bind.annotation.MatrixVariable;
  15. import org.springframework.web.bind.annotation.ModelAttribute;
  16. import org.springframework.web.bind.annotation.PathVariable;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestMethod;
  19. import org.springframework.web.bind.annotation.RequestParam;
  20.  
  21. import model.Product;
  22. import service.ProductService;
  23.  
  24. /**
  25. * @author suleymancan Mar 7, 2018
  26. */
  27.  
  28. @Controller
  29. @RequestMapping("/products")
  30. public class ProductController {
  31. @Autowired
  32. private ProductService productService;
  33.  
  34. // products url'e istek gelince bu metot çalisir.
  35. // tüm ürünleri listeleyeceğim.
  36. @RequestMapping
  37. public String defaultPage(Model model) {
  38.  
  39. List<Product> products = productService.getAllProducts();
  40. model.addAttribute("products", products);
  41. return "productList";
  42. }
  43.  
  44. @RequestMapping("/all")
  45. public String allProducts(Model model) {
  46.  
  47. List<Product> products = productService.getAllProducts();
  48. model.addAttribute("products", products);
  49. return "productList";
  50. }
  51.  
  52. // ürün detay sayfası
  53. @RequestMapping("/product")
  54. public String getProductById(@RequestParam(name = "id") String productId, Model model) {
  55. Product product = productService.getProductById(productId);
  56. model.addAttribute("product", product);
  57. return "productDetail";
  58. }
  59.  
  60. // category yapısı, path variable uygun.
  61.  
  62. @RequestMapping("/category/{categoryName}")
  63. public String listProductsByCategoryName(@PathVariable(name = "categoryName") String categoryName, Model model) {
  64. List<Product> products = productService.getProductsByCategory(categoryName);
  65. model.addAttribute("products", products);
  66. return "productList";
  67. }
  68.  
  69. // markaya göre filtreleme
  70.  
  71. @RequestMapping("/brand/{brands}")
  72. public String listProductsByBrands(@MatrixVariable(pathVar = "brands") List<String> brands, Model model) {
  73. List<Product> products = productService.getProductsByBrands(brands);
  74. model.addAttribute("products", products);
  75. return "productList";
  76. }
  77.  
  78. // ModelAttribute, view'deki ile buradaki isim aynı olmalı.
  79. // ModelAttribute, formdan girilen degerleri Product'un ilgili alanlarına
  80. // otomatik bind edecek.
  81. @RequestMapping(value = "/add", method = RequestMethod.GET)
  82. public String addProductPage(@ModelAttribute("newProduct") Product productToAdded) {
  83. System.out.println("addProductPage#GET invoked!");
  84. // default yazi. (initialize)
  85. productToAdded.setDescription("aciklama");
  86. productToAdded.setCategory("Laptop");
  87. return "productAdd";
  88. }
  89.  
  90. // view'deki checkbox vs alanları dinamik olarak olusturmak icin;
  91. // Db'den vs cekilebilir, burada elle ekliyorum.
  92. // Referans data mantıgı.
  93. @ModelAttribute("manufacturerList")
  94. public List<String> prepareManufacturers() {
  95. System.out.println("prepareManufacturers#invoked!");
  96. return Arrays.asList("Apple", "Google", "Samsung");
  97. }
  98.  
  99. @ModelAttribute("categoryList")
  100. public List<String> prepareCategories() {
  101. System.out.println("categoryList#invoked");
  102. return Arrays.asList("Tablet", "Tv", "Phone");
  103. }
  104.  
  105. @ModelAttribute("conditionMap")
  106. public Map<String, String> prepareConditions() {
  107. System.out.println("prepareConditions#invoked!");
  108. Map<String, String> conditions = new LinkedHashMap<>();
  109. conditions.put("new", "New");
  110. conditions.put("old", "Old");
  111. conditions.put("ref", "Ref");
  112. return conditions;
  113. }
  114.  
  115. // post kısmı
  116. @RequestMapping(value = "/add", method = RequestMethod.POST)
  117. public String addProductPageSubmit(@ModelAttribute("newProduct") Product productToAdded) {
  118. productService.addProduct(productToAdded);
  119. return "redirect:/products";
  120.  
  121. }
  122.  
  123. }
Add Comment
Please, Sign In to add comment