如何在单个jsp页面中显示两个表数据表示按钮单击

时间:2015-06-25 11:49:30

标签: java jsp servlets

我正在尝试使用jsp和servlet开发类似在线购物车。我有两个表,如下所示,

tbl_Electronics

P_Id | P_Name | Price

E01    Watch     250
E02    Mobile    250

tbl_Personal

P_Id | P_Name | Price

P01    Shop    25
P02    Oil     15

我有如下的主页,

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home Page</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

</head>
<body>
<h1>Catergories</h1>
<input type="button" id="Electronics" value="Electronics"> <br><br>
<input type="button" id="Personal" value="Personal Care"> <br>
<table border="1">
<thead>
<tr>
<th>Product_Id</th>
<th>Product_Name</th>
<th>Product_Price</th>
<th>Order now?</th>
</tr>
</thead>
<tbody>
<tr>
<!-- // this is sample code that how want to display -->
<c:forEach var="P" items="${TablValuesBasedOnButton}">
<tr><c:out value="${P.P_Id }" /><tr>
<tr><c:out value="${P.P_Name }" /><tr>
<tr><c:out value="${P.Price }" /><tr>
<tr><input type="checkbox" value="${P.P_Id }" class="checkboxclass"></tr>
</c:forEach>
</tr>
</tbody>
</table>

<script type="text/javascript">
$("#Electronics").click(function(){
    alert("This is Electronics Button");
})
$("#Personal").click(function(){
    alert("This is Personal care Button");
})

</script>
</body>
</html>

当用户点击代表表数据的按钮时,应该在表格中显示。示例 - 如果用户单击电子按钮,则所有tbl_Electronics表值显示在视图表中。我能够做到两个不同的页面,但我不知道单页显示不同的表值。

请建议我如何操作,示例代码将对我有所帮助。

1 个答案:

答案 0 :(得分:1)

好的,首先,由于您的表具有相同的列,因此您必须具有接口

public Interface IProduct {
  getProductId();
  getProductName();
  getProductPrice(); 
}

现在,您必须拥有实现此接口的表(bean)的视图(处理字段名称);

public Class Electronics implements IProduct, java.io.Serializable {
  private Long productId;
  private String productName;
  private Double productPrice;

  //Getters must implement the interface methods
}
  

//类Personal

的逻辑相同

现在,在您的jsp中,您必须处理单击按钮操作,如下所示(将按钮放在表单中):

$("#Electronics").click(function(){
   document.myform.method = "post";
   document.myform.action ="GetElectronicsValuesServlet";
   document.myForm.submit();
});

在servelet中,在doPost()方法中,你使用接口引用来执行逻辑,如下所示:

List<IProduct> electronics = //db method call
request.setAttribute("products", electronics);
RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
  

//第二个servlet中的逻辑相同,但填充了列表界面   引用人物对象,并将列表放在同一个键上   &#34;产品&#34;

现在,在页面中,使用接口引用来获取值:

//Retrieve the list of products from request and iterate over it, do it with //jstl, for presentation i'm using scriplets
<%for (IProduct product : products) {%>
  <tr><%=product.getProductId()%></tr>
  <tr><%=product.getProductName()%></tr>
  <tr><%=product.getProductPrice()%></tr>
<%}%>

类似的东西可以帮助您解决问题。希望它有所帮助。