pagebean pagetag java 后台代碼實現分頁 demo 前台標簽分頁 后台java分頁


java 后台代碼實現分頁 demo 實力 自己寫的 標簽分頁  

 

package com.cszoc.sockstore.util;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

/**
* 分頁JavaBean
*
*
*/
public class PageBean {
/* 當前頁 */
private int curPage=1;

/* 總記錄數 */
private int totalRecord = 0;

/* 每頁記錄數 */
private int pageRecord = 10;

/* 是否分頁,默認分頁 */
private boolean paginate = true;

/* 請求的URL */
private String url;

/* 請求中的參數 */
private Map<String, String[]> parameters = new HashMap<String, String[]>();

public PageBean() {
super();
}

public PageBean(HttpServletRequest request) {
super();
this.setRequest(request);
}

/**
* 使用HttpServletRequest對象對分頁Bean進行初始化
*
*/
@SuppressWarnings("unchecked")
public void setRequest(HttpServletRequest request) {
if(request.getAttribute("com.accp.book.util.PageBean")!=null)
{
PageBean p=(PageBean) request.getAttribute("com.accp.book.util.PageBean");
copy(p);
}
else
{
this.setCurPage(request.getParameter("curPage"));// 從請求中獲取當前頁

this.setPageRecord(request.getParameter("pageRecord"));// 從請求中獲取頁大小
this.setPaginate(request.getParameter("paginate"));// 獲取用來判斷是否分頁的參數
// System.out.println("001");
// System.out.println(request.getContextPath());
// System.out.println(request.getServletPath());
// System.out.println(this);
// System.out.println(request);
// System.out.println("001");
this.setUrl(request.getContextPath() + request.getServletPath());// 獲取表示請求資源的URL
this.setParameters(new HashMap<String, String[]>(request
.getParameterMap()));// 獲取請求中的所有參數
}
request.setAttribute("com.accp.book.util.PageBean", this);// 將分頁Bean保存request作用域當中
}

/**
* true表示進行分頁
*
* @return
*/
public boolean isPaginate() {
return paginate;
}

/**
* 設置是否分頁true分頁,false不分頁
*
* @param paginate
*/
public void setPaginate(boolean paginate) {
this.paginate = paginate;
}

/**
* 設置是否分頁true分頁,false不分頁
*
* @param paginate
*/
public void setPaginate(String paginate) {
if (null != paginate && paginate.trim().equalsIgnoreCase("false")) {
this.setPaginate(false);
} else {
this.setPaginate(true);
}
}

public Map<String, String[]> getParameters() {
return parameters;
}

public void setParameters(Map<String, String[]> parameters) {
this.parameters = parameters;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public int getCurPage() {
return curPage;
}

public void setCurPage(int curPage) {
if (curPage > 1) {
this.curPage = curPage;
}
}

public void setCurPage(String curPage) {
if (null == curPage || curPage.trim().equals("")) {
return;
}
int acurPage = Integer.parseInt(curPage);
this.setCurPage(acurPage);
}

public int getPageRecord() {
return pageRecord;
}

public void setPageRecord(int pageRecord) {
this.pageRecord = pageRecord;
}

public void setPageRecord(String pageRecord) {
if (null != pageRecord && !pageRecord.trim().equals("")) {
this.pageRecord = Integer.parseInt(pageRecord);
}
}

public int getTotalRecord() {
return totalRecord;
}

public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}

/**
* 返回下一頁頁碼
*
* @return
*/
public int getNextPageNumber() {
int nextPageNumber = this.curPage + 1;
if (nextPageNumber > this.getMaxPageNumber()) {
nextPageNumber = this.getMaxPageNumber();
}
return nextPageNumber;
}

/**
* 返回上一頁頁碼
*
* @return
*/
public int getPreviousPageNumber() {
int previousPageNumber = this.curPage - 1;
if (previousPageNumber < 1) {
previousPageNumber = 1;
}
return previousPageNumber;
}

/**
* 返回最大頁碼編號
*
* @return
*/
public int getMaxPageNumber() {
int maxPageNumber = 1;
if (this.totalRecord > this.pageRecord) {
if (0 == this.totalRecord % this.pageRecord) {
maxPageNumber = this.totalRecord / this.pageRecord;
} else {
maxPageNumber = this.totalRecord / this.pageRecord + 1;
}
}
return maxPageNumber;
}

/**
* 獲取起始記錄下標
*
* @return
*/
public int getStartRecordIndex() {
return this.pageRecord * (this.curPage - 1);
}

public String toString() {
StringBuffer bf = new StringBuffer();
bf.append("curPage=" + curPage);
bf.append(", totalRecord=" + totalRecord);
bf.append(", pageRecord=" + pageRecord);
bf.append(", hashcode=" + hashCode());
return bf.toString();
}

private void copy(PageBean p)
{
this.curPage=p.curPage;
this.pageRecord=p.pageRecord;
this.paginate=p.paginate;
this.parameters=p.parameters;
this.totalRecord=p.totalRecord;
this.url=p.url;
}

}

 

 

 

 

html 標簽前台分頁 

--------------------------------------------------------------------------

 

package com.cszoc.sockstore.util;

import java.util.Iterator;
import java.util.Map;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

/**
* 通用分頁標簽
*
*/
public class PageBeanTag extends BodyTagSupport {

private static final long serialVersionUID = 8450962461296575662L;

public PageBeanTag() {
super();
}

@Override
public int doStartTag() throws JspException {
PageBean pageBean = (PageBean) pageContext.getRequest().getAttribute(
"com.accp.book.util.PageBean");
if (null != pageBean && pageBean.isPaginate()) {
if(null!=pageContext.getRequest().getAttribute("reseturl"))
{
pageBean=(PageBean) pageContext.getRequest().getAttribute("reseturl");
}
try {
// System.out.println("002");
// System.out.println(pageBean.getUrl());
// System.out.println(pageBean);
// System.out.println("002");
pageContext.getOut().write(toHTML(pageBean));
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
pageContext.getRequest().removeAttribute("com.accp.book.util.PageBean");
return SKIP_BODY;
}

/* 將分頁JavaBean轉換成HTML字符串 */
private String toHTML(PageBean pageBean) {
// 保存請求的參數到一個表單對象中,以供下次查詢使用
StringBuffer bf = new StringBuffer();
bf.append("<form name='pageBeanForm' action='" + pageBean.getUrl()
+ "' method='post'>");
bf.append("<input type='hidden' name='curPage' value=''/>");// 當前頁是目前是空,但在點擊分頁按鈕時會進行設置
Map<String, String[]> parameters = pageBean.getParameters();// 請求中的所有參數
String paramName = null;
String[] paramValues = null;
Iterator it = parameters.keySet().iterator();
while (it.hasNext()) {
paramName = (String) it.next();// 參數名
if ("curPage".equals(paramName)) {
continue;// 把當前頁參數忽略掉
}
paramValues = parameters.get(paramName);// 參數值
for (int i = 0; null != paramValues && i < paramValues.length; i++) {
bf.append("<input type='hidden' name='" + paramName
+ "' value='" + paramValues[i] + "'/>");
}
}
bf.append("</form>");

// 顯示分頁按鈕
//bf.append("每頁 " + pageBean.getPageRecord() + " 行");
//bf.append(" 共 " + pageBean.getTotalRecord() + " 行");
//bf.append(" 第 " + pageBean.getCurPage() + " 頁");
//bf.append(" 共 " + pageBean.getMaxPageNumber() + " 頁");
bf.append("<div class='page_div'><ul class='ulfleft ht_page'>");
bf.append("<li class='ht_li1'>第"+pageBean.getCurPage()+"頁/共"+pageBean.getMaxPageNumber()+"頁</li><li class='ht_page_bg1'><a href='javascript:gotoPage(" + 1 + ")'>首頁</a></li>"+" ");

if(pageBean.getCurPage()!=1){
bf.append(" "+" <li class='ht_page_bg1'><a href='javascript:gotoPage("
+ pageBean.getPreviousPageNumber() + ")'>上一頁</a></li>"+" ");
}




if(pageBean.getCurPage()<=3)
{
if(pageBean.getMaxPageNumber()<=3)
{
for(int i=1;i<=pageBean.getMaxPageNumber();i++)
{
if(pageBean.getCurPage()==i)
{
bf.append(" "+" <li class='li_hover'><a href='javascript:gotoPage("+ i + ")'>"+i+"</a></li>"+" ");
i+=1;
}
if(pageBean.getMaxPageNumber()>=i){
bf.append(" "+" <li ><a href='javascript:gotoPage("
+ i + ")'>"+i+"</a></li>"+" ");
}
}
}
else
{
for(int i=1;i<=3;i++){
if(pageBean.getCurPage()==i){
bf.append("<li class='li_hover'>"+i+"</li>");
i+=1;
}
if(pageBean.getMaxPageNumber()>=i){
bf.append(" "+"<li > <a href='javascript:gotoPage("
+ i + ")'>"+i+"</a></li>"+" ");
}
}
}

}

if(pageBean.getCurPage()<pageBean.getMaxPageNumber()-3&&pageBean.getCurPage()>3&&pageBean.getMaxPageNumber()>=3)
{
for(int i=pageBean.getCurPage()-2;i<=pageBean.getCurPage()+2;i++)
{
if(pageBean.getCurPage()==i)
{
bf.append("<li class='li_hover'>"+i+"</li>");
i+=1;
}
bf.append(" "+" <li ><a href='javascript:gotoPage("
+ i + ")'>"+i+"</a></li>"+" ");
}
}


if(pageBean.getCurPage()>=pageBean.getMaxPageNumber()-3&&pageBean.getMaxPageNumber()>=3&&pageBean.getCurPage()>3){
for(int i=pageBean.getMaxPageNumber()-3;i<=pageBean.getMaxPageNumber();i++){
if(pageBean.getCurPage()==i){
bf.append("<li class='li_hover'>"+i+"</li>");
i+=1;
}
if(pageBean.getMaxPageNumber()>=i){
bf.append(" "+"<li > <a href='javascript:gotoPage("
+ i + ")'>"+" "+i+" "+"</a></li>"+" ");
}
}
}



if(pageBean.getCurPage()!=pageBean.getMaxPageNumber()){
bf.append(" "+"<li class='ht_page_bg1'> <a href='javascript:gotoPage("
+ pageBean.getNextPageNumber() + ")'>下一頁</a></li>"+" ");
}

bf.append(" "+" <li class='ht_page_bg1'><a href='javascript:gotoPage("
+ pageBean.getMaxPageNumber() + ")'>末頁</a></li>");//</ul></div>
bf.append(" "+" <li class='ht_page_bg1'><a href='javascript:jumpPage();'>跳轉</a> </li>");
bf.append(" "+" <li class='ht_page_bg2'>到<input type='text' class='fenye_txt' id='pageNumber'>頁</li></ul></div>");

//bf.append(" 頁數 <input type='text' id='pageNumber' style='width:20px;' /> <a href='javascript:jumpPage()'>GO</a>");

// 動態生成js
bf.append("<script>");
bf
.append("function gotoPage(curPage){document.pageBeanForm.curPage.value=curPage;document.pageBeanForm.submit();}");
bf.append("var maxPageNumber =" + pageBean.getMaxPageNumber() + ";");
bf
.append("function jumpPage(){var curPage=document.getElementById('pageNumber').value;if(curPage==''||isNaN(curPage)||parseInt(curPage)<1||parseInt(curPage)>maxPageNumber){alert('請輸入一個正確的頁碼');return;}gotoPage(curPage);}");
bf.append("</script>");

return bf.toString();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM