Commit 8913ded6 by Patryk Czarnik

obsługa POST i zapis produktów

parent b2410629
package sklep.web; package sklep.web;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import jakarta.servlet.RequestDispatcher; import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
...@@ -17,7 +18,6 @@ import sklep.model.Product; ...@@ -17,7 +18,6 @@ import sklep.model.Product;
@WebServlet("/edit") @WebServlet("/edit")
public class EditProduct extends HttpServlet { public class EditProduct extends HttpServlet {
@Override @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { throws ServletException, IOException {
...@@ -40,11 +40,41 @@ public class EditProduct extends HttpServlet { ...@@ -40,11 +40,41 @@ public class EditProduct extends HttpServlet {
e.printStackTrace(); e.printStackTrace();
} }
} }
// Forward to "wewnętrzne przekierowanie" obsługi zapytania do innego komponentu // Forward to "wewnętrzne przekierowanie" obsługi zapytania do innego komponentu aplikacji.
// aplikacji.
// Tutaj "wyświetlamy" formularz edycji produktu. // Tutaj "wyświetlamy" formularz edycji produktu.
RequestDispatcher dispatcher = request.getRequestDispatcher("product_form.jsp"); RequestDispatcher dispatcher = request.getRequestDispatcher("product_form.jsp");
if(dispatcher != null) if(dispatcher != null)
dispatcher.forward(request, response); dispatcher.forward(request, response);
} }
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// W tej wersji nie obsługujemy błędów - w razie błędu wyświetli się strona z wyjątkiem
// W przypadku braku ID zostanie utworzony nowy produkt, a w przypadku podania ID (gdy to była edycja istniejącego) - zostanie zastąpiony.
request.setCharacterEncoding("UTF-8");
String parametrId = request.getParameter("productId");
Integer productId = (parametrId == null || parametrId.isEmpty()) ? null : Integer.valueOf(parametrId);
String parametrPrice = request.getParameter("price");
BigDecimal price = new BigDecimal(parametrPrice);
String parametrVat = request.getParameter("vat");
BigDecimal vat = (parametrVat == null || parametrVat.isEmpty()) ? null : new BigDecimal(parametrVat);
String name = request.getParameter("productName");
String description = request.getParameter("description");
Product product = new Product(productId, name, price, vat, description);
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
productDAO.save(product);
db.commit();
// Gdy udało się zapisać, to przejdziemy z powrotem do listy.
// To jest przekierowanie przeglądarki do inny adres.
response.sendRedirect("products9.jsp");
} catch (DBException e) {
e.printStackTrace();
}
}
} }
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