关于Servlet的List假分页
来源:互联网 发布:java远程连接ssh主机 编辑:程序博客网 时间:2024/06/06 04:20
Page类
import java.util.ArrayList;import java.util.List;/** * * @ClassName: PageModel * @Description: 从List中获取子list实行分页 * */public class Page { private int page = 1; // 当前页 public int totalPages = 0; // 总页数 private int pageRecorders;// 每页5条数据 private int totalRows = 0; // 总数据数 private int pageStartRow = 0;// 每页的起始数 private int pageEndRow = 0; // 每页显示数据的终止数 private boolean hasNextPage = false; // 是否有下一页 private boolean hasPreviousPage = false; // 是否有前一页 private List list; // private Iterator it; public Page(List list, int pageRecorders) { init(list, pageRecorders);// 通过对象集,记录总数划分 } /** * 初始化list,并告之该list每页的记录数 * @param list * @param pageRecorders */ public void init(List list, int pageRecorders) { this.pageRecorders = pageRecorders; this.list = list; totalRows = list.size(); // it = list.iterator(); hasPreviousPage = false; if ((totalRows % pageRecorders) == 0) { totalPages = totalRows / pageRecorders; } else { totalPages = totalRows / pageRecorders + 1; } if (page >= totalPages) { hasNextPage = false; } else { hasNextPage = true; } if (totalRows < pageRecorders) { this.pageStartRow = 0; this.pageEndRow = totalRows; } else { this.pageStartRow = 0; this.pageEndRow = pageRecorders; } } // 判断要不要分页 public boolean isNext() { return list.size() > 5; } public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; } public String toString(int temp) { String str = Integer.toString(temp); return str; } public void description() { String description = "共有数据数:" + this.getTotalRows() + "共有页数: " + this.getTotalPages() + "当前页数为:" + this.getPage() + " 是否有前一页: " + this.isHasPreviousPage() + " 是否有下一页:" + this.isHasNextPage() + " 开始行数:" + this.getPageStartRow() + " 终止行数:" + this.getPageEndRow(); System.out.println(description); } public List getNextPage() { page = page + 1; disposePage(); System.out.println("用户凋用的是第" + page + "页"); this.description(); return getObjects(page); } /** * 处理分页 */ private void disposePage() { if (page == 0) { page = 1; } if ((page - 1) > 0) { hasPreviousPage = true; } else { hasPreviousPage = false; } if (page >= totalPages) { hasNextPage = false; } else { hasNextPage = true; } } public List getPreviousPage() { page = page - 1; if ((page - 1) > 0) { hasPreviousPage = true; } else { hasPreviousPage = false; } if (page >= totalPages) { hasNextPage = false; } else { hasNextPage = true; } this.description(); return getObjects(page); } /** * 获取第几页的内容 * * @param page * @return */ public List getObjects(int page) { if (page == 0) this.setPage(1); else this.setPage(page); this.disposePage(); if (page * pageRecorders < totalRows) {// 判断是否为最后一页 pageEndRow = page * pageRecorders; pageStartRow = pageEndRow - pageRecorders; } else { pageEndRow = totalRows; pageStartRow = pageRecorders * (totalPages - 1); } List objects = null; if (!list.isEmpty()) { objects = list.subList(pageStartRow, pageEndRow); } //this.description(); return objects; } public List getFistPage() { if (this.isNext()) { return list.subList(0, pageRecorders); } else { return list; } } public boolean isHasNextPage() { return hasNextPage; } public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } public List getList() { return list; } public void setList(List list) { this.list = list; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getPageEndRow() { return pageEndRow; } public void setPageEndRow(int pageEndRow) { this.pageEndRow = pageEndRow; } public int getPageRecorders() { return pageRecorders; } public void setPageRecorders(int pageRecorders) { this.pageRecorders = pageRecorders; } public int getPageStartRow() { return pageStartRow; } public void setPageStartRow(int pageStartRow) { this.pageStartRow = pageStartRow; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public int getTotalRows() { return totalRows; } public void setTotalRows(int totalRows) { this.totalRows = totalRows; } public boolean isHasPreviousPage() { return hasPreviousPage; } public static void main(String args[]) { List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("e"); list.add("f"); list.add("g"); list.add("h"); list.add("h"); list.add("i"); list.add("j"); list.add("k"); list.add("l"); list.add("m"); Page pm = new Page(list, 1); List sublist = pm.getObjects(3); for(int i = 0; i < sublist.size(); i++) { System.out.println(sublist.get(i)); } //System.out.println("............"+sublist.get(0)); }}HTML页面
<pre name="code" class="html"><% <span></span>List saleGoodsList = (List) request.getAttribute("subList");<span></span>for (Object list : saleGoodsList) {<span></span>Goods goods = (Goods) list; %><tr><span></span><td><span></span><img src="<%=goods.getPic_url()%>" width="120px" height="70px"><span></span></td><span></span><td><span></span><%=goods.getTitle()%><span></span><br/><span></span><%=goods.getPrice()%><span></span></td></tr><%<span></span>}%>
<tr> <td><span></span><a href="saleGoodsList?pageNow=1&pageSize=5" >首页</a><span></span><c:choose><span></span><c:when test="${pageNow==1}"><span></span><a href="saleGoodsList?pageNow=1&pageSize=5">上一页</a><span></span></c:when><span></span><c:otherwise><span></span><a href="saleGoodsList?pageNow=${pageNow-1}&pageSize=5">上一页</a><span></span></c:otherwise> <span></span></c:choose><span></span><c:choose><span></span><c:when test="${pageNow == totalPage}"><span></span><a href="saleGoodsList?pageNow=${totalPage}&pageSize=5">下一页</a><span></span></c:when><span></span><c:otherwise><span></span><a href="saleGoodsList?pageNow=${pageNow+1}&pageSize=5">下一页</a><span></span> </c:otherwise> <span></span></c:choose><span></span><a href="saleGoodsList?pageNow=<%=request.getAttribute("totalPage")%>&pageSize=5">末页</a><span></span>当前第<%=request.getAttribute("pageNow") %>页 总共<%=request.getAttribute("totalPage") %>页 共<%=request.getAttribute("totalRow") %>条数据 </td></tr>
web.xml
<servlet> <servlet-name>saleGoodsServlet</servlet-name> <servlet-class>servlet.saleGoodsServlet</servlet-class> </servlet> <servlet> <servlet-name>storeGoodsServlet</servlet-name> <servlet-class>servlet.storeGoodsServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>saleGoodsServlet</servlet-name> <url-pattern>/saleGoodsList</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>storeGoodsServlet</servlet-name> <url-pattern>/storeGoodsList</url-pattern> </servlet-mapping>Servlet类
public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//设置接受字符类型request.setCharacterEncoding("UTF-8");//设置输出字符类型response.setContentType("text/html;charset=UTF-8");TaobaoClient client = new DefaultTaobaoClient("http://gw.api.tbsandbox.com/router/rest", "***","***");String saleGoodsResult = TaobaoOpenApiDemo.saleGioodsGet(client);List<Goods> saleGoodsList = TaobaoOpenApiDemo.changeList(saleGoodsResult);//当前页页码Integer pageNow = Integer.parseInt(request.getParameter("pageNow"));//每页显示条数Integer pageSize = Integer.parseInt(request.getParameter("pageSize"));//总数据数Integer totalRow = saleGoodsList.size();//总页数Integer totalPage = totalRow % pageSize == 0 ? totalRow / pageSize : totalRow / pageSize + 1;//调用Page中List分页方法Page pm = new Page(saleGoodsList, pageSize);List subList = pm.getObjects(pageNow);request.setAttribute("subList", subList);request.setAttribute("pageNow", pageNow);request.setAttribute("totalRow", totalRow);request.setAttribute("totalPage", totalPage);//返回页面RequestDispatcher rd = request.getRequestDispatcher("saleGoodsList.jsp"); rd.forward(request, response);}
0 0
- 关于Servlet的List假分页
- java list 的分页
- Servlet分页的大概思路
- servlet分页功能的实现
- 返回List的分页方法
- java list分页显示 假分页
- 关于Linq to Sql的分页以及list和Iquery之间的转换
- 关于servlet服务端接收客户端发送的List<?>数据的问题
- servlet分页
- 关于分页的思考
- 关于分页的思考
- 关于PHP的分页
- 关于extjs的分页
- 关于mongoDB的分页
- 关于分页的理解
- EsayUI关于分页的
- 关于mysql的分页
- 关于Servlet的生命周期
- 在不同平台修改默认栈大小
- AC自动机算法详解
- 机器学习经典书籍小结
- 第十三周项目2 成绩统计
- 【重播工具箱】MTK全方案手机端APP,一键备份自动生成线刷包 源码思路解析
- 关于Servlet的List假分页
- 使用Lotus Domino实用程序(Updall, Compact, Fixup) 进行正常和异常维护
- eclipse 安装 BPEL 和 ODE
- UITableView1125
- java验证码图片生成
- centos与ubuntu等ibus的配置并添加搜狗词库
- openwrt挂载U盘和安装python和mysql
- 1930:今年的第几天?
- 如何将非高德坐标系转换为高德坐标系