java+stucts2后台分页
2016-04-13 15:10
495 查看
jsp部分代码:
js:
后台执行的分页一个函数(根据自己的实际情况进行处理):
分页类:
<div class="pagebar holder"> 第 <s:property value="currentPage" /> 页 共 <s:property value="page.getTotalPages()" /> 页 <s:if test="currentPage!=1"> <a href="<s:url value="work_manage"> <s:param name="currentPage" value="currentPage"/> <s:param name="pagemethod" value="'previous'"/> </s:url>">上一页</a> </s:if> <s:else> <a href="<s:url value="work_manage"> <s:param name="currentPage" value="currentPage"/> <s:param name="pagemethod" value="'first'"/> </s:url>">首页</a> </s:else> <s:if test="currentPage!=page.getTotalPages()"> <a href="<s:url value="work_manage"> <s:param name="currentPage" value="currentPage"/> <s:param name="pagemethod" value="'next'"/> </s:url>">下一页</a> </s:if> <s:else> <a href="<s:url value="work_manage"> <s:param name="currentPage" value="currentPage"/> <s:param name="pagemethod" value="'last'"/> </s:url>">尾页</a> </s:else> </div> <div> <input id=inputpage style="width: 60px; height: 25px" type="text"/ > <button id=jumppage style="margin-bottom: 10px;">跳到这页</button> </div>
js:
//$(function(){ // $("div.holder").jPages({ // containerID : "itemContainer" // }); //});这部分使用了jq的pagination,比较简单,无刷新分页,不过不适合数据量大的时候 $("#jumppage").click(function() { var currentPage=$("#inputpage").val(); var pagemethod='next'; var page = parseInt($("#inputpage").val())-1; if(page==0){ currentPage="1"; pagemethod="first"; } window.location.href="work_manage?"+"currentPage="+currentPage+"&pagemethod="+pagemethod; //$("div.holder").jPages(page); });
后台执行的分页一个函数(根据自己的实际情况进行处理):
public String execute() throws Exception { // 获得常用邮箱 emailArr = EmailDao.getEmail();//操作数据库的函数 emailNum = emailArr.size(); if (null != currentPage && null != pagemethod) { page = NewPageService.getPager(currentPage, pagemethod, emailNum, 10); } else { currentPage = "1"; pagemethod = "first"; page = NewPageService.getPager(currentPage, pagemethod, emailNum, 10); } this.setCurrentPage(String.valueOf(page.getCurrentPage())); availableItems = EmailDao.getRows(page.getPageSize(), page.getStartRow()); System.out.println(currentPage + pagemethod); return SUCCESS; }
分页类:
public class NewPageService { public NewPager getPager(String currentPage, String pagerMethod, int totalRows) { // 定义pager对象,用于传到页面 NewPager pager = new NewPager(totalRows); // System.out.println("执行到getPager了"); // 如果当前页号为空,表示为首次查询该页 // 如果不为空,则刷新pager对象,输入当前页号等信息 if (currentPage != null) { pager.refresh(Integer.parseInt(currentPage)); // System.out.println("确认完当前的currentPage"); } else { // currentPage="1"; pager.refresh(1); } // 获取当前执行的方法,首页,前一页,后一页,尾页。 // System.out.println("当前要执行的页面动作为:"+pagerMethod); if (pagerMethod != null) { if (pagerMethod.equals("first")) { pager.first(); } else if (pagerMethod.equals("previous")) { pager.previous(); } else if (pagerMethod.equals("next")) { pager.next(); } else if (pagerMethod.equals("last")) { pager.last(); } } else { pager.first(); } return pager; } public static NewPager getPager(String currentPage, String pagerMethod, int totalRows, int pageSize) { // 定义pager对象,用于传到页面 NewPager pager = new NewPager(totalRows, pageSize); // System.out.println("执行到getPager了"); // 如果当前页号为空,表示为首次查询该页 // 如果不为空,则刷新pager对象,输入当前页号等信息 if (currentPage != null) { pager.refresh(Integer.parseInt(currentPage)); System.out.println("确认完当前的currentPage"); } else { // currentPage="1"; pager.refresh(1); } // 获取当前执行的方法,首页,前一页,后一页,尾页。 System.out.println("当前要执行的页面动作为:"+pagerMethod); if (pagerMethod != null) { if (pagerMethod.equals("first")) { pager.first(); } else if (pagerMethod.equals("previous")) { pager.previous(); } else if (pagerMethod.equals("next")) { pager.next(); } else if (pagerMethod.equals("last")) { pager.last(); } } else { pager.first(); } return pager; } }
public class NewPager { private int totalRows; // 总行数 private int pageSize = 10; // 每页显示的行数 private int currentPage; // 当前页号 private int totalPages; // 总页数 private int startRow; // 当前页在数据库中的起始行 public NewPager() { } /** * 默认每页10个 * * @param _totalRows */ public NewPager(int _totalRows) { totalRows = _totalRows; totalPages = totalRows / pageSize; // System.out.println("总共的页数:"+totalPages); int mod = totalRows % pageSize; if (mod > 0) { totalPages++; } currentPage = 1; startRow = 0; } /** * 可自定义每页显示多少数 * * @param _totalRows * @param _pageSize */ public NewPager(int _totalRows, int _pageSize) { totalRows = _totalRows; pageSize = _pageSize; totalPages = totalRows / pageSize; // System.out.println("总共的页数:"+totalPages); int mod = totalRows % pageSize; if (mod > 0) { totalPages++; } currentPage = 1; startRow = 0; } public void first() { currentPage = 1; startRow = 0; } public void previous() { if (currentPage == 1) { return; } currentPage--; startRow = (currentPage - 1) * pageSize; } public void next() { if (currentPage < totalPages) { currentPage++; } System.out.println("最后的currentPage:"+currentPage); startRow = (currentPage - 1) * pageSize; } public void last() { currentPage = totalPages; startRow = (currentPage - 1) * pageSize; } public void refresh(int _currentPage) { currentPage = _currentPage; if (currentPage > totalPages) { last(); } } public int getStartRow() { return startRow; } public int getTotalPages() { return totalPages; } public int getCurrentPage() { return currentPage; } public int getPageSize() { return pageSize; } public void setTotalRows(int totalRows) { this.totalRows = totalRows; } public void setStartRow(int startRow) { this.startRow = startRow; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalRows() { return totalRows; } }
相关文章推荐
- spark master 启动出现Could not create the Java Virtual Machine.
- Java静态内部类以及非静态内部类
- Eclipse修改字体大小
- eclipse构建及运行maven web项目
- java 杀死指定进程
- java Semaphore(信号量)
- 封装PageModel分页
- Java获取当前时间,两个时间进行比较和相减操作
- java中集中代码块的使用
- java异常处理(隐式抛出、显示抛出、直接处理)
- 栈的使用和模拟
- Spring 学习笔记
- Java——Integer和int比较
- java中Collections.sort排序详解
- Java内存溢出
- Struts2常用标签总结
- java线程池
- HibernateTemplate的一些常用方法总结
- javamail 调用office365的邮箱发送邮件----报错到成功问题记录
- eclipse 安装 TestNG插件的方法