文章目录

  • 一、加入tomcat的dependencies
  • 二、需要一个mytag.tld
  • 三、构建pageBean
  • 四、PagerTag
  • 五、jsp

提示:以下是本篇文章正文内容,下面案例可供参考

一、加入tomcat的dependencies

webapp中添加,好像不添加也行

  <taglib><taglib-uri>/luo_pager</taglib-uri><taglib-location>/WEB-INF/myTag.tld</taglib-location></taglib>

二、需要一个mytag.tld

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib><tlibversion>1.2</tlibversion><jspversion>1.1</jspversion><shortname>page</shortname><uri>/luo_pager</uri><tag><name>pager</name><tagclass>tag.PagerTag</tagclass><bodycontent>empty</bodycontent><attribute><name>value</name>
<!--            是否一定要加参数--><required>true</required><rtexprvalue>false</rtexprvalue></attribute></tag>
</taglib>

三、构建pageBean

package entity;import java.util.List;public class PageBean {private int pageSize;//每页大小private int totalrows;//总记录数private int pageNum;//总页数private int curPage;//当前页码private List items;//存放数据//省略get/set方法public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;this.pageNum=this.totalrows%this.pageSize==0?this.totalrows/this.pageSize-1:this.totalrows/this.pageSize;}public int getTotalrows() {return totalrows;}public void setTotalrows(int totalrows) {this.totalrows = totalrows;}public int getPageNum() {return pageNum;}public void setPageNum(int pageNum) {this.pageNum = pageNum;}public int getCurPage() {return curPage;}public void setCurPage(int curPage) {this.curPage = curPage;}public List getItems() {return items;}public void setItems(List items) {this.items = items;}
}

四、PagerTag

当jsp转化为servlet时发现标签会自动执行标签内的方法

package tag;import entity.Page;
import entity.PageBean;import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.IOException;public class PagerTag extends TagSupport {private String value = "pb";// 存放数据实体的名字public void setValue(String value) {this.value = value;}@Overridepublic int doStartTag() throws JspException {JspWriter out = pageContext.getOut();String outStr = makeString();try {out.write(outStr);} catch (IOException e) {e.printStackTrace();}//执行jsp标签内容return1EVAL_BODY_INCLUDE//不执行SKIP_BODYreturn SKIP_BODY;}private String makeString() {// 获取到存放在request中的数据实体Object p = pageContext.getRequest().getAttribute(value);PageBean pageBean = (PageBean) pageContext.getRequest().getAttribute(value);StringBuffer sb = new StringBuffer();if (pageBean != null && pageBean.getItems() != null&& pageBean.getItems().size() > 0) {sb.append("共" + pageBean.getCurPage() + " / "+ pageBean.getPageNum() + "页");//首页 上一页if (pageBean.getCurPage() >=1) {sb.append("<a href='?page=0'>首页</a>");sb.append("<a href='?page=" + (pageBean.getCurPage()-1) + "'>上一页</a>");}//循环显示中间页码,这里也可控制最大只显示多少页码for (int i = 1; i < pageBean.getPageNum() + 1; i++) {if (i == pageBean.getCurPage()) {sb.append(" " + i + " ");} else {sb.append("<a href='?page=" + i + "'> " + i + " </a>");}}//下一页 末页if(pageBean.getCurPage() != pageBean.getPageNum()){sb.append("<a href='?page=" + (pageBean.getCurPage()+1 ) + "'>下一页</a>");sb.append("<a href='?page=" + (pageBean.getPageNum()-1) + "'>末页</a>");}}return sb.toString();}}

五、jsp

jsp记得要引入自定义标签

<%@ page language="java" import="java.util.*,entity.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="luo" uri="/luo_pager" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>pager test</title>
</head><body>
<table border="1px"><tr><th>名字</th><th>图片</th></tr><%PageBean page1=(PageBean) request.getAttribute("pb");ArrayList<Picture> pictures=(ArrayList<Picture>)page1.getItems();for(Picture picture:pictures){String url="/image/"+picture.getUrl();System.out.println();System.out.println(url);%><tr><td><a href="QueryByUrlServlet?url=<%=picture.getUrl()%>"><%=picture.getName() %></a></td><td><img src="<%=url%>" width="50px" ;height="50px"/></td></tr><%}%><table/><luo:pager value="pb"/>
</body>
</html>

jsp自定义标签分页taglib相关推荐

  1. [JSP]自定义标签库taglib

    自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...

  2. java 自定义taglib_[JSP]自定义标签库taglib

    自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.SimpleTagSuppo ...

  3. jsp自定义标签(taglib)编写的原理和实现

    jsp自定义标签(taglib)编写的原理和实现 转:http://www.javaeye.com/topic/157737 个tag就是一个普通的java类,它惟一特别之处是它必须继承TagSupp ...

  4. jsp自定义标签学习

    简单的说明: 1,说明---jsp自定义标签: HelloWorld:jsp自定义标签的使用流程: QueryTag:带属性标签的定义以及连接数据库使用: IteratorTag:带标签体的标签定义以 ...

  5. 如何使用jsp自定义标签 JspTag 使用入门

    java开发中,sturts标签和c标签就是我们常用的两种标签,本文主要教大家如何定义自己的标签,已达到代码整合,公共化的目的.通过jsp自定义标签,可以将一个元素,或者一个表格,一个div甚至整个页 ...

  6. 转载:javaweb学习总结(二十三)——jsp自定义标签开发入门

    javaweb学习总结(二十三)--jsp自定义标签开发入门 转自:http://www.cnblogs.com/xdp-gacl/p/3916734.html 一.自定义标签的作用 自定义标签主要用 ...

  7. JSP自定义标签学习笔记

    http://blog.csdn.net/liangbinny/article/details/6309893 本文是本人学习<JavaWeb学习>书籍所记下的学习笔记 一.概述 JSP ...

  8. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  9. html模板(base标签,meta标签,禁用浏览器缓存)+JSP自定义标签荔枝

    [1]html模板 <html> <head><!-- base标签表示uri相对路径的基准路径 --><base href="http://loc ...

最新文章

  1. 亿级商城促销系统架构设计与实践
  2. ADO.NET Entity Framework如何:通过每种类型一个表继承以定义模型(实体框架)
  3. 扬言要干掉 RESTful API 的 GraphQL 是什么鬼?
  4. ajax jquery return没有返回值
  5. EXT中创建一个弹窗效果
  6. JavaScript点击事件-一个按钮触发另一个按钮
  7. BZOJ3110: [Zjoi2013]K大数查询(整体二分)
  8. 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践
  9. 字符串匹配【模板】(luogu 3375)
  10. 杭电2066一个人的旅行
  11. 面试题目_数据分析之hive sql面试题目
  12. Mysql5.7及以上版本的MySQL下载、安装及配置教程(附图)
  13. maya python 游戏与影视编程指南_Maya Python 游戏与影视编程指南
  14. N!阶层末尾有多少0
  15. ps色板文件怎么导入?
  16. Crystal Reports - New Report
  17. 2022CUDA夏季训练营Day5实践
  18. 【安防百科】HDSDI、960H、HDCVI、HDTVI、AHD方案对比
  19. 远程桌面访问之VNC使用指南
  20. SCRUM项目 4.0

热门文章

  1. 在 JavaScript 中动态创建表格、按钮和 DIV
  2. 显卡超频linux,Linux 5.12内核将支持Radeon RX 6000系列显卡超频
  3. 级数(函数项),完备正交函数集,傅里叶级数
  4. c语言行列的互换及常见的错误类型
  5. IntelliJ IDEA中文网
  6. CSAPP Lab2 实验记录 ---- Bomb Lab(Secret Phase彩蛋解析)
  7. 程序员要从“美团崩溃”中学习的痛点
  8. 李炎恢老师XHTML视频教程DIV+CSS教程与课件代码
  9. 最简单的爬虫,用pandas爬取表格数据
  10. 高中计算机备课教案模板,高中信息技术教案:《程序设计基础》教案模板