您的位置:首页 > 编程语言 > Java开发

java+stucts2后台分页

2016-04-13 15:10 495 查看
jsp部分代码:

<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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: