Commit 65b031c5 by Patryk Czarnik

usuwanie z koszyka

parent 0b92977e
...@@ -33,7 +33,7 @@ public class AddToBasket extends HttpServlet { ...@@ -33,7 +33,7 @@ public class AddToBasket extends HttpServlet {
// ignorujemy błędy // ignorujemy błędy
} }
// Przekierowanie - każemy przeglądarce wejść pod ten adres. // Przekierowanie - każemy przeglądarce wejść pod ten adres.
response.sendRedirect("products8.jsp"); response.sendRedirect("products9.jsp");
} }
} }
...@@ -27,6 +27,9 @@ public class Basket { ...@@ -27,6 +27,9 @@ public class Basket {
addProduct(product, 1); addProduct(product, 1);
} }
public synchronized void removeProduct(int productId) {
elementy.remove(productId);
}
public synchronized Collection<ProductInBasket> getElements() { public synchronized Collection<ProductInBasket> getElements() {
return Collections.unmodifiableCollection(elementy.values()); return Collections.unmodifiableCollection(elementy.values());
......
package sklep.basket;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
@WebServlet("/remove_from_basket")
public class RemoveFromBasket extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
int productId = Integer.parseInt(request.getParameter("productId"));
HttpSession sesja = request.getSession();
Basket basket = (Basket) sesja.getAttribute("basket");
basket.removeProduct(productId);
} catch (Exception e) {
// ignorujemy błędy
}
// Przekierowanie - każemy przeglądarce wejść pod ten adres.
response.sendRedirect("products9.jsp");
}
}
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<%-- Zauważmy, że dla obiektu koszyk nie wykonujemy już useBean. <%-- Zauważmy, że dla obiektu koszyk nie wykonujemy już useBean.
Po prostu zakładamy, że jest obecny (w sesji). Gdyby go nie było, to pętla się nie wykona. --%> Po prostu zakładamy, że jest obecny (w sesji). Gdyby go nie było, to pętla się nie wykona. --%>
<c:forEach var="elm" items="${basket.elements}"> <c:forEach var="elm" items="${basket.elements}">
<li>${elm.productName} (${elm.quantity}) za <b>${elm.value}</b></li> <li>${elm.productName} (${elm.quantity}) za <b>${elm.value}</b> <a href="remove_from_basket?productId=${elm.productId}">(–)</a></li>
</c:forEach> </c:forEach>
</ul> </ul>
<p class="total">Do zapłaty: ${basket.totalValue}</p> <p class="total">Do zapłaty: ${basket.totalValue}</p>
......
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