From eb82d05f4fe21c4659cc9d12db1b85ef09834b67 Mon Sep 17 00:00:00 2001 From: CodeSteak Date: Mon, 8 Jun 2020 09:14:11 +0200 Subject: [PATCH] Use Spring model for template attributes --- .../intern/WarehouseController.java | 4 +++- .../warehouse/ManuelBookingController.java | 20 +++++++++-------- .../intern/warehouse/SlotsController.java | 6 +++-- .../intern/warehouse/TodoController.java | 22 +++++++++++-------- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/WarehouseController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/WarehouseController.java index 1e26c3d..4a0258e 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/WarehouseController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/WarehouseController.java @@ -3,6 +3,7 @@ package org.hso.ecommerce.controller.intern; import org.hso.ecommerce.repos.warehouse.WarehouseBookingRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -17,9 +18,10 @@ public class WarehouseController { @GetMapping("/") public String accountingWarehouse( + Model model, HttpServletRequest request ) { - request.setAttribute("bookings", warehouseBookingRepository.findAll()); + model.addAttribute("bookings", warehouseBookingRepository.findAll()); return "intern/warehouse/index"; } } diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/ManuelBookingController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/ManuelBookingController.java index 35ab3fc..7ef8e0e 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/ManuelBookingController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/ManuelBookingController.java @@ -10,6 +10,7 @@ import org.hso.ecommerce.repos.warehouse.WarehouseBookingPositionSlotEntryReposi import org.hso.ecommerce.repos.warehouse.WarehouseBookingRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -37,17 +38,18 @@ public class ManuelBookingController { @GetMapping("addManual") public String warehouseAddManual( - HttpServletRequest request + Model model ) { - request.setAttribute("articles", articleRepository.findAll()); - request.setAttribute("slots", slotRepository.findAll()); + model.addAttribute("articles", articleRepository.findAll()); + model.addAttribute("slots", slotRepository.findAll()); return "intern/warehouse/addManual"; } @PostMapping("addManual") public String warehouseAddMaualPost( + Model model, HttpServletRequest request, HttpServletResponse response, @RequestParam("articleId") String articleIdText, @@ -65,7 +67,7 @@ public class ManuelBookingController { try { articleId = Long.parseLong(articleIdText.split(" - ", 2)[0].trim()); } catch (NumberFormatException e) { - request.setAttribute("error", "Die Artikel Id konnte nicht erkannt werden."); + model.addAttribute("error", "Die Artikel Id konnte nicht erkannt werden."); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return "intern/warehouse/addManual"; } @@ -74,7 +76,7 @@ public class ManuelBookingController { Optional
optionalArticle = articleRepository.findById(articleId); Article article = null; if (!optionalArticle.isPresent()) { - request.setAttribute("error", "Der Artikel konnte nicht gefunden werden."); + model.addAttribute("error", "Der Artikel konnte nicht gefunden werden."); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "intern/warehouse/addManual"; } else { @@ -82,13 +84,13 @@ public class ManuelBookingController { } if (amount <= 0) { - request.setAttribute("error", "Eine Anzahl <= 0 kann nicht verbucht werden."); + model.addAttribute("error", "Eine Anzahl <= 0 kann nicht verbucht werden."); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "intern/warehouse/addManual"; } if (sourceIsSlot == false && destinationIsSlot == false) { - request.setAttribute("error", "Jede Buchung benötigt ein Ziel oder eine Quelle."); + model.addAttribute("error", "Jede Buchung benötigt ein Ziel oder eine Quelle."); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "intern/warehouse/addManual"; } @@ -123,11 +125,11 @@ public class ManuelBookingController { new CreateManuelBookingAction(article, amount, sourceSlot, destinationSlot, reason).finish() ); } catch (CreateManuelBookingAction.ArticleSlotConstraintArticleTypeFailedException e) { - request.setAttribute("error", "Es befindet sich der falsche Artikeltyp in Quell- oder Ziellagerplatz. "); + model.addAttribute("error", "Es befindet sich der falsche Artikeltyp in Quell- oder Ziellagerplatz. "); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "intern/warehouse/addManual"; } catch (CreateManuelBookingAction.ArticleSlotConstraintFailedException e) { - request.setAttribute("error", "Die maximale Anzahl an lagerbaren Artikeln im Ziellagerplatz wurde überschritten."); + model.addAttribute("error", "Die maximale Anzahl an lagerbaren Artikeln im Ziellagerplatz wurde überschritten."); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "intern/warehouse/addManual"; } diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/SlotsController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/SlotsController.java index 1f6bdd3..8cc5721 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/SlotsController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/SlotsController.java @@ -6,6 +6,7 @@ import org.hso.ecommerce.repos.warehouse.SlotRepository; import org.hso.ecommerce.repos.warehouse.WarehouseBookingPositionSlotEntryRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -25,6 +26,7 @@ public class SlotsController { @GetMapping("slots/") public String accountingWarehouseSlots( + Model model, HttpServletRequest request ) { @@ -36,9 +38,9 @@ public class SlotsController { .getBySlotNum(s.slotNum) .orElseGet(() -> WarehouseBookingPositionSlotEntry.empty(null, s)) ).collect(Collectors.toList()); - request.setAttribute("entries", entries); + model.addAttribute("entries", entries); - request.setAttribute("stats", new CalculateWarehouseStatsAction(entries).finish()); + model.addAttribute("stats", new CalculateWarehouseStatsAction(entries).finish()); return "intern/warehouse/slots/index"; } } diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/TodoController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/TodoController.java index d57916c..4bed5cd 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/TodoController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/warehouse/TodoController.java @@ -5,6 +5,7 @@ import org.hso.ecommerce.entities.warehouse.WarehouseBooking; import org.hso.ecommerce.repos.warehouse.WarehouseBookingRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -23,22 +24,23 @@ public class TodoController { @GetMapping("todo") public String accountingWarehouseTodo( - HttpServletRequest request + Model model ) { - request.setAttribute("bookings", warehouseBookingRepository.findNotDone()); + model.addAttribute("bookings", warehouseBookingRepository.findNotDone()); return "intern/warehouse/todo"; } @PostMapping("progress/{id}") public String postProgressId( + Model model, HttpServletRequest request, HttpServletResponse response, @PathVariable("id") Long id ) { Optional booking = warehouseBookingRepository.findById(id); if (!booking.isPresent()) { - request.setAttribute("error", "Die Buchung wurde nicht gefunden."); + model.addAttribute("error", "Die Buchung wurde nicht gefunden."); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return "error/404"; } @@ -56,13 +58,14 @@ public class TodoController { @PostMapping("progress/{id}/finish") public String postProgressIdFinish( + Model model, HttpServletRequest request, HttpServletResponse response, @PathVariable("id") Long id ) { Optional booking = warehouseBookingRepository.findById(id); if (!booking.isPresent()) { - request.setAttribute("error", "Die Buchung wurde nicht gefunden."); + model.addAttribute("error", "Die Buchung wurde nicht gefunden."); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return "error/404"; } @@ -81,26 +84,27 @@ public class TodoController { } @GetMapping("progress/{id}") - public String getProgressId(HttpServletRequest request, + public String getProgressId(Model model, + HttpServletRequest request, HttpServletResponse response, @PathVariable("id") Long id) { Optional booking = warehouseBookingRepository.findById(id); if (!booking.isPresent()) { - request.setAttribute("error", "Die Buchung wurde nicht gefunden."); + model.addAttribute("error", "Die Buchung wurde nicht gefunden."); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return "error/404"; } if (booking.get().isDone) { - request.setAttribute("info", "Die Buchung wurde schon abgeschlossen."); + model.addAttribute("info", "Die Buchung wurde schon abgeschlossen."); } if (!booking.get().isInProgress) { // Only reachable if path is manipulated. - request.setAttribute("error", "Die Buchung wurde noch nicht zugewiesen!"); + model.addAttribute("error", "Die Buchung wurde noch nicht zugewiesen!"); } - request.setAttribute("booking", booking.get()); + model.addAttribute("booking", booking.get()); return "intern/warehouse/id_progress"; }