Commit b3836ae4 by Patryk Czarnik

Przekierowanie na inną stronę po zaakceptowaniu formularza

parent 95bc5cf8
......@@ -77,7 +77,6 @@ public class ProductController {
// 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.
// 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:
// W tej wersji przed parametrem Product jest adnotacja @Valid
......@@ -87,15 +86,19 @@ public class ProductController {
// Metoda jest wywoływana zawsze, a to programista ma sprawdzić czy walidacja się powiodła.
// W BindingResult znajdują się też informacje o błędach.
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 {
// 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);
System.out.println("Obiekt po zapisie: " + product.getProductId() + " " + product.getProductName());
model.addAttribute("saved", true);
// Po pomyślnym zapisaniu przechodzimy na stronę tego produktu
return "redirect:/products/" + product.getProductId();
} catch (Exception e) {
model.addAttribute("errors", ExceptionUtils.allMessages(e));
return "product_form";
}
return "product_form";
}
}
......@@ -64,10 +64,6 @@
</div>
</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="/">powrót do spisu treści</a></div>
</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