У меня проблема с добавлением товара из каталога в корзину. Мне удается сделать это для одного продукта, но когда я обновляюсь и добавляю другой продукт, предыдущий продукт исчезает и показывает только последний выбранный продукт. Я застрял здесь и не знаю, как это сделать. Я надеюсь, что кто-то может мне помочь
Ниже приведен код, который я пробовал
Product.java
package Model;
public class Product {
private int id;
private String prodName;
private String desc;
private double pricePerUnit;
private int qtyInStock;
public Product(int id, String prodName, String desc, double pricePerUnit, int qtyInStock) {
this.id = id;
this.prodName = prodName;
this.desc = desc;
this.pricePerUnit = pricePerUnit;
this.qtyInStock = qtyInStock;
}
public String getProdName() {
return prodName;
}
public double getPricePerUnit() {
return pricePerUnit;
}
public int getQtyInStock() {
return qtyInStock;
}
@Override
public String toString() {
return "ProductModel{" + "id=" + id + ", prodName=" + prodName + ", desc=" + desc + ", pricePerUnit=" + pricePerUnit + ", qtyInStock=" + qtyInStock + '}';
}
}
ListOf.java
package Model;
import java.util.ArrayList;
import java.util.List;
public final class ListOf {
public static List<Product> products = new ArrayList();
static{
products.add(new Product(1,"Academic Book","Learn to program",50.00,100));
products.add(new Product(2,"Notebook","Latest notebook in the market",5500.00,10));
products.add(new Product(3,"Travel Charger","Travel Adapter",15.00,10));
products.add(new Product(4,"Lipstick","Red Matter Color",25.00,100));
}
public static List<Product> cartItems = new ArrayList();
}
ShoppingController.java
package Controller;
import Model.ListOf;
import Model.Product;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "ShoppingController", urlPatterns = {"/shopping"})
public class ShoppingController extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//step 1: fetch data
List<Product> result = ListOf.products
.stream()
.collect(Collectors.toList());
request.setAttribute("productList", result);
//step 2: do business logic
//step 3: generate output
RequestDispatcher dis=request.getRequestDispatcher("shopping.jsp");
dis.forward(request, response);
}
}
CartController.java
package Controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "CartController", urlPatterns = {"/cart"})
public class CartController extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dis=request.getRequestDispatcher("cart.jsp");
dis.forward(request, response);
}
}
Выходными данными должен быть список товаров, которые пользователь нажал «Добавить в корзину». Если пользователь щелкнул более 1 товара, то должно быть более 1 товара, но мне удается добавить только 1 товар в корзину, и предыдущий товар исчезнет. Заранее спасибо