展示全部商品功能的實現
Jsp框架:
一、1.商品縮圖2.商品價格,庫存,種類;3.顯示有貨或無貨狀態;
二、展示頁面分為三塊,將商品縮圖劃分為20%;商品價格,庫存,種類寬度為40%,有貨無貨佔40%;
三、因為使用到<c:forEach標籤,引入jstl包和字首:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
程式碼:
<table width="100%" style="text-align:center">
<c:forEach items
<tr>
<td width="20%">
<a href="${pageContext.request.contextPath}/ProdInfoServlet?id=${prod.id}">
<img src="${pageContext.request.contextPath}/ImgServlet?id=${prod.id}&type=s"/>
</a>
</td>
<td width
${prod.name}<br/>
${prod.price}<br/>
${prod.category}<br/>
</td>
<td width="40%">
<!--當商品庫存大於0時,有貨,小於等於0時,無貨-->
<c:if test="${prod.pnum>0 }"><font color="blue">有貨</font></c:if>
<c:if test="
</td>
</tr>
</c:forEach>
</table>
Servlet相關操作:
ProdInfoServlet:
//獲取ProdService
ProdService service = (ProdService) BasicFactory.getFactory().getInstance("ProdService");
//獲取傳入的商品id
String id=request.getParameter("id");
//獲取商品
Prod prod =service.findProdById(Integer.valueOf(id));
//如果商品是空的,則返回,沒有物件
if(prod==null){
throw new RuntimeException("當前沒有物件");
}else{
//將找到的商品放到請求中
request.setAttribute("prod", prod);
//獲取請求後,轉發到檔案詳細頁面
request.getRequestDispatcher("/prodInfo.jsp").forward(request, response);
}
Dao相關操作:
public Prod findProdById(Integer id) {
//定義sql語句
String sql = "select * from products where id=?";
//獲取連線
QueryRunner runner = new QueryRunner(DaoUtils.getSource());
try {
Prod prod=runner.query(sql, new BeanHandler<Prod>(Prod.class),id);
return prod;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}