添加到购物车按钮功能

时间:2019-10-27 16:31:42

标签: jsp servlets

我想将目录中的产品添加到购物车时遇到问题。我设法为单个产品执行此操作,但是当我刷新并添加另一个产品时,以前的产品消失了,只显示了我选择的最新产品。我被困在这里,不知道该怎么做。我希望有人可以帮助我

下面是我尝试过的代码

Product.java

[]
[]

ListOf.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 + '}';

    }    

}

ShoppingController.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();

}

CartController.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);         
    }
}

输出应该是用户单击“添加到购物车”的产品列表。如果用户单击了不止一种产品,则应该是不止一种产品,但是我只设法在购物车中拿到了一种产品,以前的产品将会消失。预先感谢

0 个答案:

没有答案