1.1. 完成产品的分页显示
第一步:在浏览器端提供pageNo与pageSize,将它们做为参数传递到服务器
var pageNo=1;// 默认显示第一页
var pageSize=10;// 每页显示条数
var url=”/jquery_exam/product”;
$.post(url,{“pageNo:pageNo,”pageSize”:pageSize}function(data){
返回结果处理的逻辑
}
第二步:服务器来处理分页
Web 层代码
//接收请求参数 pageNo 和pageSize
int pageNo = Integer.parseInt(request.getParameter(“pageNo”));//页码
int pageSize=Integer.parseInt(request.getParameter(“pageSize”));//每页显示条数
// 查询所有的产品,得到List<Product>对象,转换成json响应到浏览器
ProductService service = new ProduceService();
List<Product> ps = service.findAll(pageNo,pageSize);
Service 层代码:
public List<Product> findAll(int pageNo,int pageSize) throws SQLException{
ProductDAO dao = new ProductDAO();
return dao.findAll(pageNo,pageSize);
}
Dao 层代码:
public List<Product> findAll(int pageNo,int pageSize) throws SQLException{
QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
return runer.query(“select * from product limit ?,?”,
new BeanListHandler<Product>(Product.class),(pageNo-1)*pageSize,pageSize);
}
问题:怎样在浏览器端展示分页条?
在分页条中需要总页数据,也就是说,总页数我们需要在服务器端查询获得到,需要服务器端返回它,我们可以定义一个PageBean这样一个对象,在这个PageBean中我们封装分页需要的数据,将它在服务器端生成,服务器端就不需要直接返回List<Product>,.面是返回一个PageBean的json数据。
实体bean示例如下:
//主要封装分页的相关信息
public class PageBean<T>{
private int pageNo;// 页码
private int pageSize;//每页显示条数
private int totalPage; //总页数
private int totalCount;// 总条数
private List<T> content; //当前页显示的数据
}