写个自定义标签吧!给你个例子,前端:<fn:page url="/profile/allQuestionAndAnswer?userId=${userId}"></fn:page>, 后端: private static final long serialVersionUID = -1885082542634459990L;
private static final String PAGE_FIRST_DIV = " <div class=\"pagelist\"> ";
private static final String PAGE_END_DIV = " </div> ";
private static final int PAGE_BETWEEN_SIZE = 4; // 当前页的前后页数间距
private static final int PAGE_FIRST_LAST_BETWEEN_SIZE = 2;
private String url;
private String pageName = "entityPage";
public String getPageName() {
return pageName; }
public void setPageName(String pageName) {
this.pageName = pageName; }
public String getUrl() {
return url; }
public void setUrl(String url) {
this.url = url; }
@Override public int doStartTag() throws JspException {
StringBuffer pageSb = new StringBuffer(); Object obj = RequestUtils.getRequest() .getAttribute(pageName);
后端:
private static final long serialVersionUID = -1885082542634459990L;
private static final String PAGE_FIRST_DIV = " <div class=\"pagelist\"> ";
private static final String PAGE_END_DIV = " </div> ";
private static final int PAGE_BETWEEN_SIZE = 4; // 当前页的前后页数间距
private static final int PAGE_FIRST_LAST_BETWEEN_SIZE = 2;
private String url;
private String pageName = "entityPage";
public String getPageName() {
return pageName;
}
public void setPageName(String pageName) {
this.pageName = pageName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public int doStartTag() throws JspException {
StringBuffer pageSb = new StringBuffer();
Object obj = RequestUtils.getRequest()
.getAttribute(pageName);
int curPage = 1;
int totalPage = 1;
if(obj!=null){
if(obj instanceof EntityPage){
EntityPage entityPage = (EntityPage)obj;
curPage = entityPage.getCurrentPage();
totalPage = entityPage.getPageCount();
}else if(obj instanceof FnEntityPage){
FnEntityPage entityPage = (FnEntityPage)obj;
curPage = entityPage.getCurrentPage();
totalPage = entityPage.getPageCount();
}
}
if (obj != null && totalPage>1) {
pageSb.append(PAGE_FIRST_DIV);
// 上一页
if (curPage == 1) {
pageSb.append("<span class=\"disabled\">上一页</span>");
} else {
String param = ""+ (curPage-1);
pageSb.append("<a href=\"" + "javascript:page('" + param + "')\">上一页</a>");
}
int beginPage = curPage - PAGE_BETWEEN_SIZE;
int endPage = curPage + PAGE_BETWEEN_SIZE;
if (endPage > totalPage) {
endPage = totalPage;
}
if (beginPage < 1) {
beginPage = 1;
}
// 如果beginPage>2
if (beginPage > PAGE_FIRST_LAST_BETWEEN_SIZE) {
String firstParam = "" + 1;
pageSb.append("<a href=\"" + "javascript:page('" + firstParam + "')\">"
+ 1
+ "</a>");
String secondParam = "" + 2;
pageSb.append("<a href=\"" + "javascript:page('"
+ secondParam
+ "')\">"
+ 2
+ "</a>");
pageSb.append("...");
}
for (int i = beginPage; i <= endPage; i++) {
if (curPage == i) {
pageSb.append("<span class=\"current\">" + i + "</span>");
} else {
String param = "" + i;
pageSb.append("<a href=\"" + "javascript:page('"
+ param
+ "')\">"
+ i
+ "</a>");
}
}
if (endPage < (totalPage - 1)) {
String firstParam = "" + (totalPage - 1);
pageSb.append("...<a href=\"" + "javascript:page('"
+ firstParam
+ "')\">"
+ (totalPage - 1)
+ "</a>");
String secondParam = "" + (totalPage);
pageSb.append("<a href=\"" + "javascript:page('"
+ secondParam
+ "')\">"
+ (totalPage)
+ "</a>");
}
// 下一页
if (curPage == totalPage) {
pageSb.append("<span class=\"disabled\">下一页</span>");
} else {
String param = "" + (curPage + 1);
pageSb.append("<a href=\"" + "javascript:page('" + param + "')\">下一页</a>");
}
//处理分页请求
pageSb.append("<script type=\"text/javascript\"> ");
pageSb.append(" function page(curPage){" );
pageSb.append(" var pageform = document.getElementById('pageform'); ");
pageSb.append(" document.getElementById(\"pc.currentPage\").value=curPage; ");
pageSb.append(" pageform.submit(); ");
pageSb.append("}");
pageSb.append(" </script> ");
pageSb.append(PAGE_END_DIV);
}
JspWriter out = pageContext.getOut();
try {
out.print(pageSb.toString());
} catch (IOException e) {
e.printStackTrace();
}
return Tag.SKIP_BODY;
}