<%@ 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对象books并将Book对象添加到数组列表中
"/> *
当我们单击add to cart按钮时,value="<%=book.getBname() %>如何为不同的图书挑选相应的图书价值,
根据我的理解,它应该总是发送相同的书名,
发布于 2015-10-14 20:42:11
当您单击图书旁边相应的“添加到购物车”按钮时,图书所在的表单将提交到addcart.jsp。在这个jsp中,您应该使用request.getParameter("bname")获取图书名称,它是包含图书名称的隐藏字段(使用表单提交)。
这就是它的工作原理。
发布于 2015-10-14 23:17:02
由于您正在遍历书籍,因此假设有n本书,它将创建n个表单。在每个表单中,您都会保留一个包含bookname.So的隐藏字段。单击"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>
...我希望你能理解它是如何工作的。
https://stackoverflow.com/questions/33125260
复制相似问题