如何在 java ee 中单击按钮时从列表中添加特定项目?

How to add specific item from list on button click in java ee?

最近开始学习javaee,想做一个小店应用。 在下面的代码中,我在列表中添加了一些文章,我可以在 jsp.

上显示它们
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    ArrayList<Artical> articals = Artical.getArticals();
    request.setAttribute("articals", articals);       
    RequestDispatcher rd = request.getRequestDispatcher("home.jsp");
    rd.forward(request, response);

}

这里是我展示文章和创建按钮的地方:

 <body>
    <h1>Welcome ${user.name}</h1>
  
    <c:forEach var="artical" items="${articals}">
        <ul>
            <li>${artical.name}
                <form action="addtocart" method="POST">
                    <button type="submit" name="button">Add to cart</button></form></li>
            <li>${artical.price}</li>
        </ul>
    </c:forEach>

</body>

我想在单击“添加到购物车”按钮时将该商品添加到购物车(在我的例子中只是为了显示它们)。那么我的“addtocart”servlet 应该是什么样子呢?谢谢

您可以在您的 <form></form> 中添加隐藏字段,以便在单击您的按钮表单时会将您的 nameprice 项目值带到 servlet 中,您可以在其中添加这些你的List.即:

<c:forEach var="artical" items="${articals}">
        <ul>
            <li>${artical.name}
                <form action="addtocart" method="POST"> 
                    <!--add below inputs-->
                   <input type="hidden" name="names" value="${artical.name}"/>
                    <input type="hidden" name="price" value="${artical.price}"/>
                    <button type="submit" name="button">Add to cart</button></form></li>
            <li>${artical.price}</li>
        </ul>
    </c:forEach>

然后在您的 servlets doPost() 方法中使用 request.getParameter("..") 获取这些值,即:

 String names= request.getParameter("names");
    String price= request.getParameter("price");
 //add in list and then add that list in sessions