我的分页类


/** *//**
* ***************
* html page code
* ***************
* <tr>
* <td>
<logic:notEqual value="1" name="pageIndex">
<label onclick="doPostBack('fpage')" > frontPage</label>
</logic:notEqual>
<logic:lessThan value="${sessionScope.pages}" name="pageIndex">
<label onclick="doPostBack('npage')" >nextPage</label>
</logic:lessThan>
</td>
</tr>
<tr>
<td>
共${sessionScope.pages}page
目前第:${sessionScope.pageIndex}ページ
総計:${sessionScope.count}記録
</td>
</tr>
//<if ${sessionScope.count == 0}">
記録がない
*******************
* action/servlet page
*******************
*if(type.equals("npage"))
pageList = new MyPage(list,10,pageidx + 1,session).getPageList();
else{
pageList = new MyPage(list,10,pageidx - 1,session).getPageList();
}
*/
import java.util.List;
import javax.servlet.http.HttpSession;

public class MyPage ...{
private int pageSize;
private int pageIndex;
private int count;
private int pages;
private List list = null;
private HttpSession session = null;

public MyPage(List list,int pageSize,int pageIndex)...{
setList(list);
setPageSize(pageSize);
setPageIndex(pageIndex);
setPageInit();
}

/** *//**
*
* @param list
* @param pageSize
* @param pageIndex
* @param session has pageSize,pageIndex,count,pages
*/
public MyPage(List list,int pageSize,int pageIndex,HttpSession session)...{
setList(list);
setPageSize(pageSize);
setPageIndex(pageIndex);
setSession(session);
setPageInit();
}

/** *//**
* lsit size
* @return
*/
public int getCount() ...{
return count;
}

/** *//**
* pages
* @return
*/
public int getPages() ...{
return pages;
}

/** *//**
* data list
* @return
*/
public List getList() ...{
return list;
}
public void setList(List list) ...{
if(list != null && list.size() > 0)
this.list = list;
}
/** *//**
* http session
* @return
*/
public HttpSession getSession() ...{
return session;
}

public void setSession(HttpSession session) ...{
if(session != null)
this.session = session;
}

/** *//**
* pageIndex
* @return
*/
public int getPageIndex() ...{
return pageIndex;
}
public void setPageIndex(int pageIndex)...{
this.pageIndex = pageIndex > 0 ? pageIndex : 1;
}

/** *//**
* pageSize
* @return
*/
public int getPageSize() ...{
return pageSize;
}
public void setPageSize(int pageSize)...{
this.pageSize = pageSize > 0 ? pageSize : 5;
}

private void setPageInit()...{
count = this.list.size();
pages = count%pageSize == 0 ? count/pageSize : count/pageSize + 1;
}

/** *//**
* get current page
* @return
*/
public List getPageList()...{
List pageList = null;
if(count > 0)...{
if(pageIndex > pages)pageIndex = pages;
int startIndex = pageSize*(pageIndex-1);
int endIndex = pageSize * pageIndex -1;
if(endIndex >= count)endIndex= count-1;
pageList = list.subList(startIndex,endIndex + 1 );
if( session != null )...{
session.setAttribute("pageList", pageList);
session.setAttribute("pageIndex", pageIndex);
session.setAttribute("pageSize", pageSize);
session.setAttribute("count", count);
session.setAttribute("pages", pages);
}
}
else...{
if( session != null )
session.setAttribute("count", 0);
}
return pageList;
}

public void removePage()...{
try...{
session.removeAttribute("pageIndex");
session.removeAttribute("pageSize");
session.removeAttribute("count");
session.removeAttribute("pages");
session.removeAttribute("pageList");
}catch(Exception e)...{}
}
}

html 页面例子(struts)
javascript 控制提交
<script language="javascript">
<!--
function doPostBack(eventTarget) ...{
var theform = document.forms[0];
theform.submitType.value = eventTarget;
theform.submit();
}
// -->
</script>
页面改变代码
<td colspan="6" align="center">
<logic:notEqual value="1" name="pageIndex">
<label onclick="doPostBack('fpage')" style="color:Teal;font-family:MS 明朝;font-size:Small;"><< frontPage</label>
</logic:notEqual>
<logic:lessThan value="${sessionScope.pages}" name="pageIndex">
<label onclick="doPostBack('npage')" style="color:Teal;font-family:MS 明朝;font-size:Small;">nextPage >></label>
</logic:lessThan>
</td>
本文介绍了一个自定义分页组件的实现细节,包括如何通过Java类处理分页逻辑、设置每页显示的数据数量、当前页数等。同时展示了Struts框架中如何使用JavaScript控制页面跳转。

4217

被折叠的 条评论
为什么被折叠?



