分頁
--------------action虛擬裏分頁------------------
//從session中獲取集合值
List<F1111Repeat> list=null;
if(null==session.getAttribute("F1111List")){
F1111 fmsg = new F1111();
fmsg.setFlag(queryName);
fmsg.setOperor(userName);
fmsg.setCommpanyID(companyId);
fmsg.setBeginDate(beginDate);
fmsg.setEndDate(endDate);
fmsg.execute();
list = fmsg.getReList();
session.setAttribute("F1111List",list);
}else{
list=(List<F1111Repeat>) session.getAttribute("F1111List");
}
int totalNum=list.size();
//計算取值的範圍
int beginPar=(current_page-1)*Configure.PAGESIZE+1;
int endPar=(current_page-1)*Configure.PAGESIZE+Configure.PAGESIZE;
if(endPar>totalNum){
endPar=totalNum;
}
//分頁拼裝
List<F1111Repeat> tranList =list.subList(beginPar, endPar);
Pager pager= new Pager();
pager.paging(current_page, Configure.PAGESIZE, totalNum);
pager.setList(tranList);
request.setAttribute("pager", pager);
public class Pager {
private int total_page; //總頁數
private int total_count; //總記錄數
private int current_page; //當前頁
private int page_size; //每頁的數量
private int first_page;
private int pre_page;
private int next_page;
private int last_page;
private boolean is_first;
private boolean is_last;
private List list;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public int getTotal_page() {
return total_page;
}
public void setTotal_page(int total_page) {
this.total_page = total_page;
}
public int getTotal_count() {
return total_count;
}
public void setTotal_count(int total_count) {
this.total_count = total_count;
}
public int getCurrent_page() {
return current_page;
}
public void setCurrent_page(int current_page) {
this.current_page = current_page;
}
public int getPage_size() {
return page_size;
}
public void setPage_size(int page_size) {
this.page_size = page_size;
}
public int getFirst_page() {
return first_page;
}
public void setFirst_page(int first_page) {
this.first_page = first_page;
}
public int getPre_page() {
return pre_page;
}
public void setPre_page(int pre_page) {
this.pre_page = pre_page;
}
public int getNext_page() {
return next_page;
}
public void setNext_page(int next_page) {
this.next_page = next_page;
}
public int getLast_page() {
return last_page;
}
public void setLast_page(int last_page) {
this.last_page = last_page;
}
public boolean isIs_first() {
return is_first;
}
public void setIs_first(boolean is_first) {
this.is_first = is_first;
}
public boolean isIs_last() {
return is_last;
}
public void setIs_last(boolean is_last) {
this.is_last = is_last;
}
/**
* 分頁處理
* @param current_page 當前頁
* @param page_size 每頁的數量
* @param total_count 總記錄數
*/
public void paging(int current_page, int page_size, int total_count){
this.current_page = current_page;
this.page_size = page_size;
this.total_count = total_count;
if(current_page < 1){
this.current_page = 1;
}
this.total_page = (this.total_count + page_size - 1)/page_size;
this.first_page =1;
this.last_page = total_page;
if(this.current_page > 1){
this.pre_page = this.current_page - 1;
}else{
this.pre_page = 1;
}
if(this.current_page < total_page){
this.next_page = this.current_page + 1;
}else{
this.next_page = total_page;
}
if(this.current_page <= 1){
this.is_first = true;
}else{
this.is_first = false;
}
if(this.current_page >= total_page){
this.is_last = true;
}else{
this.is_last = false;
}
}
}
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<script type="text/javascript">
var total_page =${requestScope.pager.total_page};
var action=document.forms[0].action;
function goCommonPager(){
var current_page=document.getElementById("goCommonPageNO").value;
if(isNaN(current_page)||current_page<=0||current_page>total_page){
alert("請輸入1到"+total_page+"之間的正整數.");
return false;
}
document.forms[0].action=action+"?current_page="+current_page;
document.forms[0].submit();
}
function doCommonPager(current_page){
document.forms[0].action=action+"?current_page="+current_page;
document.forms[0].submit();
}
</script>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" >
<tr>
<td height="30" width="100%" align="right">
共${requestScope.pager.total_count}條 第${current_page}頁/共${requestScope.pager.total_page}頁
<s:if test="#request.pager.is_first == false">
<a href="javascript:doCommonPager(${requestScope.pager.first_page})">首頁</a>
<a href="javascript:doCommonPager(${requestScope.pager.pre_page})">上一頁</a>
</s:if>
<s:if test="#request.pager.is_first == true">
<a href="#">首頁</a>
<a href="#">上一頁</a>
</s:if>
<s:if test="#request.pager.is_last == false">
<a href="javascript:doCommonPager(${requestScope.pager.next_page})">下一頁</a>
<a href="javascript:doCommonPager(${requestScope.pager.last_page})">最後一頁 </a>
</s:if>
<s:if test="#request.pager.is_last == true">
<a href="#">下一頁</a>
<a href="#">最後一頁 </a>
</s:if>
<input id="goCommonPageNO" type="text" size="1"/>
<input name="button" type="button" value="Go" οnclick="goCommonPager();"/>
</td>
</tr>
</table>