黑马商城项目(二)
前台分类信息展示
在head.jsp中有以下js代码:
$(function () {
var url = "${pageContext.request.contextPath}/category";
var params = "method=findCategory";
$.post(url,params,function (d) {
$(d).each(function (a,b) {
$("#u1").append("<li><a href=${pageContext.request.contextPath}/product?
method=findPage&pageNumber=1&cid="+b.cid+">"+b.cname+"</a></li>");
})
},"json");
})
通过ajax方式,首先访问CategoryServlet中的findCategory()方法,查询并以json格式返回Category的List集合d
b.cname即是最终导航栏显示的分类信息。
点击某一个分类后,会访问ProductServlet中的findPage()方法,传递当前页数:1和分类ID:cid。
分类商品的分页展示
Servlet中的findPage()方法:
public String findPage(HttpServletRequest request, HttpServletResponse response)
{
// 获取分类的ID
String cid = request.getParameter("cid");
// 获取当前页数
int pageNumber =Integer.parseInt(request.getParameter("pageNumber"));
// 设定每页显示的条数
int pageSize=12;
// 带着参数调用service
ProductService ps=new ProductServiceImpl();
PageBean pb = ps.findPage(cid,pageNumber,pageSize);
//将返回的PageBean对象和分类ID存储,供jsp页面使用
request.setAttribute("pb", pb);
request.setAttribute("cid", cid);
}
Dao层查询每页显示的数据(select * from product where cid = ? limit ?,?),Service层调用Dao后再进行条数页数的设置并封装进javabean,返回给servlet。
Service层的findPage()方法:
public PageBean findPage(String cid, int pageNumber, int pageSize) throws Exception {
ProductDao pd=