Commit b3836ae4 by Patryk Czarnik

Przekierowanie na inną stronę po zaakceptowaniu formularza

parent 95bc5cf8
...@@ -77,7 +77,6 @@ public class ProductController { ...@@ -77,7 +77,6 @@ public class ProductController {
// W tej wersji dane z wypełnionego formularza odbieramy w postaci jednego obiektu Product. // W tej wersji dane z wypełnionego formularza odbieramy w postaci jednego obiektu Product.
// Spring sam wpisze dane do pól o takich samych nazwach. // Spring sam wpisze dane do pól o takich samych nazwach.
// Taki parametr od razu staje się częścią modelu (to jest tzw. ModelAttribute) // Taki parametr od razu staje się częścią modelu (to jest tzw. ModelAttribute)
System.out.println("Obiekt z formularza: " + product.getProductId() + " " + product.getProductName());
// Kwestia Bean Validation: // Kwestia Bean Validation:
// W tej wersji przed parametrem Product jest adnotacja @Valid // W tej wersji przed parametrem Product jest adnotacja @Valid
...@@ -87,15 +86,19 @@ public class ProductController { ...@@ -87,15 +86,19 @@ public class ProductController {
// Metoda jest wywoływana zawsze, a to programista ma sprawdzić czy walidacja się powiodła. // Metoda jest wywoływana zawsze, a to programista ma sprawdzić czy walidacja się powiodła.
// W BindingResult znajdują się też informacje o błędach. // W BindingResult znajdują się też informacje o błędach.
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
model.addAttribute("errors", bindingResult.getAllErrors()); // W końcowej wersji nie dodajemy errorów, które i tak wyświetlą się przy polach formularza
// model.addAttribute("errors", bindingResult.getAllErrors());
return "product_form";
} else try { } else try {
// Gdy próbujemy wywołać save, a obiekt nie spełnia wymagań validation, to wtedy Hibernate zablokuje taki zapis (wyrzuci wyjątek).
// W tej wersji do tego nie dojdzie, bo if sprawdził, że nie ma błędów walidacji. Mogą być błedy techniczne bazy danych.
productRepository.save(product); productRepository.save(product);
System.out.println("Obiekt po zapisie: " + product.getProductId() + " " + product.getProductName()); // Po pomyślnym zapisaniu przechodzimy na stronę tego produktu
model.addAttribute("saved", true); return "redirect:/products/" + product.getProductId();
} catch (Exception e) { } catch (Exception e) {
model.addAttribute("errors", ExceptionUtils.allMessages(e)); model.addAttribute("errors", ExceptionUtils.allMessages(e));
return "product_form";
} }
return "product_form";
} }
} }
...@@ -64,10 +64,6 @@ ...@@ -64,10 +64,6 @@
</div> </div>
</c:if> </c:if>
<c:if test="${saved}">
<div class="info">Zapisano produkt nr ${product.productId}</div>
</c:if>
<div><a class="action" href="/products">powrót do listy produktów</a></div> <div><a class="action" href="/products">powrót do listy produktów</a></div>
<div><a class="action" href="/">powrót do spisu treści</a></div> <div><a class="action" href="/">powrót do spisu treści</a></div>
</body> </body>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment