JSP自定义分页标签库
来源:互联网 发布:东方园林 知乎 编辑:程序博客网 时间:2024/05/02 04:52
目的:分页在查询页面几乎哪里都要用到,代码繁琐,本张介绍通过jsp自定义标签库实现分页技术,
使用步骤
1:导入自定义标签库 <%@ taglib prefix="cc" uri="/pagetag"%>
2:使用 标签库 <cc:tagout url="integeral/queryIntegral.html"pageindex="${pageindex}" pagesize="10" totalsize="120"></cc:tagout>
这样就可以了,哪里需要分页技术及这两句话,js和jsp代码都封装好,无需再进行逻辑处理,使用时要做的及时 在标签赋值就可以实现任何分页了
看效果
1:查看第6页后,上页,下页显示
2:点击上页后 ,没有上页了,从1页开始
3: 点击下页后
4店家第8页后
实现步骤
1定义tdl文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>cc</short-name>
<uri>/pagetag</uri>
<tag>
<name>tagout</name>
<tag-class>com.datong.rootravel.constants.PageTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pageindex</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pagesize</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>totalsize</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
2:写分页实现类 继承tagSupport类
package com.datong.rootravel.constants;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/*
* JSP 分页标签通用库
*
* auto zg
* time 2014-10-13
*
* */
public class PageTag extends TagSupport {
private String url;
private int pageindex;
private int pagesize;
private int totalsize;
// 在开始标签属性设置后调用,如果返回SKIP_BODY则忽略标签之中的内容,如果返回EVAL_BODY_INCLUDE则将标签体的内容进行输出
@Override
public int doStartTag() throws JspException {
JspWriter out = null;
Integer temp = 0;
String style="style=\"color:red;\"";
for (int t = pageindex; t > 0; t++) {
if (t % 5 == 0) {
temp = t;
break;
}
}
try {
out = this.pageContext.getOut();
if (url == null) {
out.println("error: url is null!");
return SKIP_BODY;
}
Integer pagecount = (Integer) (totalsize % pagesize == 0 ? totalsize
/ pagesize
: totalsize / pagesize + 1);
out.print("<div id=\"member_new_pages\">");
out.print("<ul>");
if (pagecount <= 5) { // 总页小于5 没有上页下页
for (int i = 1; i <= pagecount; i++) {
out.print("<li ><a "+(i==pageindex?style:"")+" href=\"javascript:pageQuery('" + url + "?pageindex="
+ i + "&pagesize=" + pagesize
+ "&totalsize=" + totalsize + "')\">" + i
+ "</a></li>");
}
} else {
// 上页
if (temp > 5) {
out.print("<li ><a href=\"javascript:pageQuery('" + url + "?pageindex="
+ (temp - 9) + "&pagesize=" + pagesize
+ "&totalsize=" + totalsize + "')\">上一页</a></li>");
}
if (temp> pagecount) { // 没有下一页了
for (int i = temp - 4; i <= pagecount; i++) {
out.print("<li ><a "+(i==pageindex?style:"")+" href=\"javascript:pageQuery('" + url + "?pageindex="
+ i + "&pagesize=" + pagesize
+ "&totalsize=" + totalsize + "')\">" + i
+ "</a></li>");
}
} else {
for (int i = temp - 4; i <= temp; i++) {
out.print("<li ><a "+(i==pageindex?style:"")+" href=\"javascript:pageQuery('" + url + "?pageindex="
+ i + "&pagesize=" + pagesize
+ "&totalsize=" + totalsize + "')\">" + i
+ "</a></li>");
if (i == temp) {
out.print("<li><a href=\"javascript:pageQuery('" + url + "?pageindex="
+ (temp + 1) + "&pagesize=" + pagesize
+ "&totalsize=" + totalsize
+ "')\">下一页</a></li>");
}
}
}
}
out.print("</ul></div>");
} catch (Exception e) {
e.printStackTrace();
}
return SKIP_BODY;
}
public int getTotalsize() {
return totalsize;
}
public void setTotalsize(int totalsize) {
this.totalsize = totalsize;
}
// 在结束标签之前调用,返回SKIP_PAGE跳过整个jsp页面后面的输出,返回EVAL_PAGE执行页面余下部分
@Override
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
// 生命周期结束时调用
@Override
public void release() {
super.release();
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getPageindex() {
return pageindex;
}
public void setPageindex(int pageindex) {
this.pageindex = pageindex;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
}
3:配置web.xml
<jsp-config>
<taglib>
<taglib-uri>/pagetag</taglib-uri>
<taglib-location>/WEB-INF/pagetag.tld</taglib-location>
</taglib>
</jsp-config>
- JSP自定义分页标签库
- jsp 自定义分页标签
- jsp自定义分页标签
- jsp自定义分页标签
- jsp 自定义分页标签
- JSP自定义分页标签
- 自定义Jsp分页标签
- jsp自定义分页标签
- jsp自定义分页标签
- jsp自定义分页标签
- 自定义JSP分页标签
- Jsp自定义分页标签
- JSP自定义标签--分页
- jsp自定义分页标签page
- JSP自定义分页标签TAG
- jsp自定义标签实现分页
- JSP 自定义标签库
- Jsp 自定义标签库
- iOS 8.0 毛玻璃效果UIVisualEffect
- 【cocos2d-x 3.0-Mac配置篇】
- js 对象以及其基本操作
- 在Android线程中设置控件的值会报错
- 程序猿最应去的网站有哪些?
- JSP自定义分页标签库
- Android属性动画深入分析:让你成为动画牛人
- 关于拖延症和强迫症
- 多线程中InvokeRequired和Invoke的用法,讲的很清楚
- 记录几个开源代码地址
- 最受欢迎的博客网站前15名(2014年10月)
- xcode 快捷键
- response.sendRedirect()中session与request的异同
- Web开发