jsp自定义分页标签
直接就java代码吧package net.eicp.roomally.web.tag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.BodyContent;import javax.servlet.jsp.tagext.BodyTagSupport;public class PagingTag extends BodyTagSupport {private static final long serialVersionUID = 3803084919005718453L;// 用户请求的methodprivate String method;private boolean isBorder;private String parameters;// 点击时提交处理的url(必须)private String action;// 数据库的数据总条数(必须)private long count;public String getParameters() {return parameters;}public void setParameters(String parameters) {this.parameters = parameters;}// 当前的条数private long index;// 每页的条数private int pageCount;private long next() {long previousIndex = count - count % pageCount;if (index >= previousIndex) {return previousIndex;} else if ((index + pageCount) == count) {return index;}return index + pageCount;}private long previous() {if (index <= 0) {return 0;}return index - pageCount;}/* * 收集参数 */private String parameter() {String para = "";if (!isNull(method)) {para += "&method=" + method;}if (!isNull(parameters)) {para += "&" + parameters;}return para;}/* * 判断是否为空 */private boolean isNull(String name) {return "".equals(name == null ? "" : name);}/* * 得到页数共有多少页 */private long getSumPage() {long page = count / pageCount;if ((count % pageCount) != 0) {page += 1;}return page;}/* * 得到当前的页数 */private long getCurrentPage() {long page = index / pageCount;page++;if ((index % pageCount) != 0) {page++;}return page;}/* * 得到最后一页 */private long atLength() {if ((count % pageCount) == 0) {return count - pageCount;}return (count - count % pageCount);}private String getContext() {StringBuffer page = new StringBuffer("<table cellpadding=0 cellspacing=0");if (isBorder) {page.append(" style='border-style: dotted;'");}page.append(">");page.append("<tr>");page.append("<td>");page.append("共有<font color=green size=4>" + count+ "</font>条记录,当前第<font color=green size=4>" + getCurrentPage()+ "</font>页,共<font color=green size=4>" + getSumPage()+ "</font>页&nbsp;&nbsp;");page.append("</td>");page.append("<td align=center>");page.append("<input style='background-color: #dcf1fc;border-style:ridge;' type=button value=首页 onclick=\"location='"+ action);page.append("?index=0" + parameter() + "'\">");page.append("</td>");page.append("<td align=center>");page.append("<input style='background-color: #dcf1fc;border-style:ridge;' type=button value=上一页 onclick=\"location='"+ action);page.append("?index=" + previous() + parameter() + "'\">");page.append("</td>");page.append("<td align=center>");page.append("<input style='background-color: #dcf1fc;border-style:ridge;' type=button value=下一页 onclick=\"location='"+ action);page.append("?index=" + next() + parameter() + "'\">");page.append("</td>");page.append("<td align=center>");page.append("<input style='background-color: #dcf1fc;border-style:ridge;' type=button value=尾页 onclick=\"location='"+ action);page.append("?index=" + atLength() + parameter() + "'\">");page.append("</td>");page.append("</tr>");page.append("</table>");return page.toString();}public int doStartTag() throws JspException {JspWriter out = this.pageContext.getOut();String page = getContext();try {out.write(page);} catch (IOException e) {}return SKIP_BODY;}public int doEndTag() throws JspException {if (this.bodyContent != null) {try {this.bodyContent.writeOut(this.bodyContent.getEnclosingWriter());} catch (IOException e) {}}return EVAL_PAGE;}public int doAfterBody() throws JspException {return SKIP_BODY;}public void doInitBody() throws JspException {super.doInitBody();}public void setBodyContent(BodyContent bodyContent) {this.bodyContent = bodyContent;}public String getMethod() {return method;}public void setMethod(String method) {this.method = method;}public String getAction() {return action;}public void setAction(String action) {this.action = action;}public long getCount() {return count;}public void setCount(long count) {this.count = count;}public long getIndex() {return index;}public void setIndex(long index) {this.index = index;}public int getPageCount() {return pageCount;}public void setPageCount(int pageCount) {this.pageCount = pageCount;}public boolean isBorder() {return isBorder;}public void setBorder(boolean border) {this.isBorder = border;}}
然后在WEB-INF下创建一个.tld文件,下面是tld文件的内容,内容里的http://roomally.eicp.net/tag/page就是在jsp页面要通过指令taglib引用的
<div class="quote_title">引用
页:
[1]