java代码
public class PageTag extends TagSupport {
private String bean;
@Override
public int doEndTag() throws JspException {
// 通过上下文获得请求对象属性
PageBean pageBean = (PageBean) this.pageContext.getRequest()
.getAttribute(bean);
StringBuffer sb = new StringBuffer();
sb.append("<div class='page-bar'><ul><li><label>共"
+ pageBean.getTotalCount() + "条记录 "
+ pageBean.getCurPage() + "/" + pageBean.getTotalPage()
+ "页</label>");
if (pageBean.isPre()) {
sb.append("<a href='doUser?op=toPage&curPage=1'>首 页</a>");
sb.append("<a href='doUser?op=toPage&curPage="
+ (pageBean.getCurPage() - 1) + "'>上一页</a>");
}
if (pageBean.isNext()) {
sb.append("<a href='doUser?op=toPage&curPage="
+ (pageBean.getCurPage() + 1) + "'>下一页</a>");
sb.append("<a href='doUser?op=toPage&curPage="
+ pageBean.getTotalPage() + "'>最后一页</a>");
}
sb.append("<label class='page-go-form'>跳转至<input type='text' name='inputPage' id='inputPage' class='page-key'/>页<button type='button' class='page-btn' οnclick='jump_to(document.getElementById(\"inputPage\").value)'>GO</button>");
sb.append("<script type='text/javascript'>function jump_to(num){var reg=/^\\d+$/;if(!reg.test(num)){alert('请输入正确的数字');}else{window.location='doUser?op=toPage&curPage='+num;}}</script>");
sb.append("</label></li></ul></div>");
try {
this.pageContext.getOut().print(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
return super.doEndTag();
}
public String getBean() {
return bean;
}
public void setBean(String bean) {
this.bean = bean;
}
}
配置文件
放在WEB-INF/tld/page.tld
<!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.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>d</short-name>
<tag>
<name>rollPage</name>
<tag-class>com.demo.web.tag.PageTag</tag-class>
<body-content>jsp</body-content>
<!-- JSP,empty表示能能包函内容的,scriptless,tagdependent -->
<attribute>
<!-- 标签名 -->
<name>bean</name>
<!-- 是否为可选属性 -->
<required>true</required>
<!-- 是否接受JSP表达示计算结果 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
JSP页面的调用
<%@taglib uri="/WEB-INF/tld/page.tld" prefix="d" %>
<d:rollPage bean="userPage"></d:rollPage>