我使用的分页标签奉上
高手勿喷..
请自行根据自己的实际情况修改样式及输出内容!
/**
* 分页标签
*
* @author 路茂明
*
*/
public class PageTag extends TagSupport {
public final static String PAGE_INDEX = "pageIndex";
public final static String TOTLE = "totle";
@Override
public int doEndTag() throws JspException {
// 获取request对象
HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
// 获取当前页码
int pageIndex = (Integer) request.getAttribute(PAGE_INDEX);
// 获取数据总条数
int totle = (Integer) request.getAttribute(TOTLE);
// 计算总页数
int pageCount = totle % pageSize == 0 ? totle / pageSize : totle
/ pageSize + 1;
StringBuffer sb = new StringBuffer();
// 拼接
if (pageIndex == 1) {
sb.append("<span class='disabled'> < 上一页</span>");
} else {
sb.append("<a href='javascript:;' οnclick='goPage("
+ (pageIndex - 1) + ")'> < 上一页</a>");
}
for (int i = 1; i <= pageCount; i++) {
if (i == pageIndex) {
// 当前页
sb.append("<span class='current'>").append(i).append("</span>");
} else {
// 非当前页
sb.append("<a href='javascript:;' οnclick='goPage(" + i + ")'")
.append(">").append(i).append("</a>");
}
}
if (pageIndex == pageCount) {
sb.append("<span class='disabled'>下一页 > </span>");
} else {
sb.append("<a href='javascript:;' οnclick='goPage("
+ (pageIndex + 1) + ")'>下一页 > </a>");
}
// 分页所需脚本
sb.append("<input id ='pageIndex' type='hidden' name='pageIndex' />");
sb.append("<script>");
sb.append("var goPage=function(index){");
sb.append("document.getElementById('pageIndex').value=index;");
sb.append("document.forms['page'].submit();");
sb.append("}");
sb.append("</script>");
try {
pageContext.getOut().write(sb.toString());
} catch (IOException e) {
}
// 返回结果
return EVAL_PAGE;
}
private Integer pageSize;
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.1.2</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>taoist</short-name>
<uri>/taoists</uri>
<description>Taoist Framework JSP Tag Library. Authors: George Long </description>
<tag>
<name>page</name>
<tag-class>com.ningpai.tag.PageTag</tag-class>
<body-content>empty</body-content>
<description>分页标签
使用时需定义name为page的form表单,
在表单中包含您要提交的除分页内容外的其他内容,
分页标签需在此form中使用.
另需在request作用域中加入pageIndex(当前页码) 及total(数据总条数)两个属性
</description>
<attribute>
<name>pageSize</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>