【问题标题】:Add to cart Servlet - how it works添加到购物车 Servlet - 它是如何工作的
【发布时间】:2016-01-12 12:53:54
【问题描述】:
<%@ page import="java.util.*,com.stakoverflow.bookstore.servlets.*"%>
<html>
<body>
<center><br><br>
<h1>Book Store</h1>
<table>
<%
List books=new ArrayList();
Book book=new Book();
book.setBid(101);
book.setBname("Learn java");
book.setAuthor("dsouza");
book.setCost(99.99);
book.setCat("Java");
book.setPub("india");
book.setIsbn("11-11");
books.add(book);

book= new Book();
book.setBid(102);
book.setBname("Learn JDBC");
book.setAuthor("bsk");
book.setCost(99.99);
book.setCat("Java");
book.setPub("india-pub");
book.setIsbn("11-11");
books.add(book);


book=new Book();
book.setBid(103);
book.setBname("Learn JSP");
book.setAuthor("pintu");
book.setCost(99.99);
book.setCat("Java");
book.setPub("newage");
book.setIsbn("11-11");
books.add(book);

book=new Book();
book.setBid(104);
book.setBname("Learn EJB");
book.setAuthor("Rj");
book.setCost(99.99);
book.setCat("Java");
book.setPub("tmh");
book.setIsbn("11-11");
books.add(book);

out.println("<table>");
%>
<tr>
<td>Book ID</td>
<td>Book Name</td>
<td>Author</td>
<td>Cost</td>
<td>Cat</td>
<td>Pub</td>
<td>ISBN</td>
</tr>
<% 
Iterator it=books.iterator();
while(it.hasNext()){
    book=(Book)it.next();
%>
<tr>
<td><%=book.getBid()%></td>
<td><%=book.getBname()%></td>
<td><%=book.getAuthor()%></td>
<td><%=book.getCost()%></td>
<td><%=book.getCat()%></td>
<td><%=book.getPub()%></td>
<td><%=book.getIsbn()%></td>

**<td>
*<form action="addcart.jsp">
<input type="hidden" name="bname" value="<%=book.getBname() %>"/>
<input type="submit" value="Add To Cart"/>*
</form>**
</td>
</tr>
<%
}
out.println("</table>");
%>
<a href="placeorder.jsp">Place My Order</a>
<form action="/Lab8/showcart.jsp">
<input type="submit" value="Show My Cart"/>
</form>
</table>
</center>
</body>
</html>

对于上面的jsp代码, 我正在创建一个 ArrayList 对象书籍并将 Book 对象添加到数组列表中

"/> *

当我们点击加入购物车按钮时,value="是如何为不同的书挑选对应的账面价值的,

根据我的理解,它应该总是发送相同的书名,

【问题讨论】:

  • 你有多本书。
  • 为什么要用新值重置“book”变量?您可以使用 book1、book2、book3 对吗?

标签: java jsp jakarta-ee


【解决方案1】:

当您点击图书旁边相应的“加入购物车”按钮时,图书所在的表单将提交到addcart.jsp。在这个 jsp 中,您应该使用 request.getParameter("bname") 获取书名,这是包含书名的隐藏字段(使用表单提交)。

它是这样工作的

【讨论】:

  • 如果您觉得这个答案有用,您可以点赞并接受。谢谢
【解决方案2】:

由于您正在迭代书籍,因此假设有 n 本书,它会创建 n 个表单。 在每个表单中,您都会保留一个包含书名的隐藏字段。因此,一旦您单击"Add to Cart" 按钮,只有该表单数据会提交到addcart.jsp,您可以在其中使用request.getParameter("bname") 访问书名。

只是一个让事情更清楚的例子

any.jsp

  ....
        <body>
              <%for(int i=1;i<5;i++){ %>
              <form method ="get" action="myServlet">
              <input type="hidden" name="bname" value="<%=i %>"/>
              <input type="submit" value="Add To Cart"/>
               </form>
               <%} %>
          </body>

....

如果你看到这个页面的源代码,那就是

....
<body>

      <form method ="get" action="myServlet">
      <input type="hidden" name="bname" value="1"/>
      <input type="submit" value="Add To Cart"/>
       </form>

      <form method ="get" action="myServlet">
      <input type="hidden" name="bname" value="2"/>
      <input type="submit" value="Add To Cart"/>
       </form>

      <form method ="get" action="myServlet">
      <input type="hidden" name="bname" value="3"/>
      <input type="submit" value="Add To Cart"/>
       </form>

      <form method ="get" action="myServlet">
      <input type="hidden" name="bname" value="4"/>
      <input type="submit" value="Add To Cart"/>
       </form>

  </body>
  ...

我希望你明白它是如何工作的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多