Commit b00a4b1c by Patryk Czarnik

Formularz edycji danych - zapisywanie nowych produktów

parent fb15ac05
...@@ -21,28 +21,32 @@ public class EditProduct extends HttpServlet { ...@@ -21,28 +21,32 @@ public class EditProduct extends HttpServlet {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int productId = Integer.parseInt(request.getParameter("productId")); String parametrId = request.getParameter("productId");
try(DBConnection db = DBConnection.open()) { if(parametrId != null) {
ProductDAO productDAO = db.productDAO(); int productId = Integer.parseInt(parametrId);
Product product = productDAO.findById(productId); try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
// Forward to "wewnętrzne przekierowanie" obsługi zapytania do innego komponentu aplikacji. Product product = productDAO.findById(productId);
// Tutaj "wyświetlamy" formularz edycji produktu.
// Gdy do obiektu request dodamy atrybut, to stanie się on dostępny dla kolejnych komponentów // Gdy do obiektu request dodamy atrybut, to stanie się on dostępny dla kolejnych komponentów
// naszej aplikacji, które będą obsługiwać to zapytanie. // naszej aplikacji, które będą obsługiwać to zapytanie.
// W tym przypadku skrypt JSP może odwoływać się do obiektu product. // W tym przypadku skrypt JSP może odwoływać się do obiektu product.
// Obiekt request jest też nośnikiem danych, podobnie jak sesja i servletContext. // Obiekt request jest też nośnikiem danych, podobnie jak sesja i servletContext.
// To działa jak Model w Spring MVC. // To działa jak Model w Spring MVC.
request.setAttribute("product", product); // Tylko jeśli znajdę produkt, tylko wtedy dodaję go do requestu i JSP wyświetli jego dane.
RequestDispatcher dispatcher = request.getRequestDispatcher("product_form.jsp"); // Jeśli parametru productId nie było lub produktu nie znaleziono, to wyświetli się pusty formularz.
dispatcher.forward(request, response); request.setAttribute("product", product);
} catch (DBException | RecordNotFound e) {
} catch (DBException e) { e.printStackTrace();
e.printStackTrace(); }
} catch (RecordNotFound e) {
e.printStackTrace();
} }
// Forward to "wewnętrzne przekierowanie" obsługi zapytania do innego komponentu aplikacji.
// Tutaj "wyświetlamy" formularz edycji produktu.
RequestDispatcher dispatcher = request.getRequestDispatcher("product_form.jsp");
if(dispatcher != null)
dispatcher.forward(request, response);
} }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
......
...@@ -62,5 +62,6 @@ do ${param.max_price} ...@@ -62,5 +62,6 @@ do ${param.max_price}
</div> </div>
</c:forEach> </c:forEach>
<div><a href="EditProduct">Dodaj nowy produkt</a></div>
</body> </body>
</html> </html>
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