jsp自定义标签分页taglib
文章目录
- 一、加入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相关推荐
- [JSP]自定义标签库taglib
自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...
- java 自定义taglib_[JSP]自定义标签库taglib
自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.SimpleTagSuppo ...
- jsp自定义标签(taglib)编写的原理和实现
jsp自定义标签(taglib)编写的原理和实现 转:http://www.javaeye.com/topic/157737 个tag就是一个普通的java类,它惟一特别之处是它必须继承TagSupp ...
- jsp自定义标签学习
简单的说明: 1,说明---jsp自定义标签: HelloWorld:jsp自定义标签的使用流程: QueryTag:带属性标签的定义以及连接数据库使用: IteratorTag:带标签体的标签定义以 ...
- 如何使用jsp自定义标签 JspTag 使用入门
java开发中,sturts标签和c标签就是我们常用的两种标签,本文主要教大家如何定义自己的标签,已达到代码整合,公共化的目的.通过jsp自定义标签,可以将一个元素,或者一个表格,一个div甚至整个页 ...
- 转载:javaweb学习总结(二十三)——jsp自定义标签开发入门
javaweb学习总结(二十三)--jsp自定义标签开发入门 转自:http://www.cnblogs.com/xdp-gacl/p/3916734.html 一.自定义标签的作用 自定义标签主要用 ...
- JSP自定义标签学习笔记
http://blog.csdn.net/liangbinny/article/details/6309893 本文是本人学习<JavaWeb学习>书籍所记下的学习笔记 一.概述 JSP ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- html模板(base标签,meta标签,禁用浏览器缓存)+JSP自定义标签荔枝
[1]html模板 <html> <head><!-- base标签表示uri相对路径的基准路径 --><base href="http://loc ...
最新文章
- 亿级商城促销系统架构设计与实践
- ADO.NET Entity Framework如何:通过每种类型一个表继承以定义模型(实体框架)
- 扬言要干掉 RESTful API 的 GraphQL 是什么鬼?
- ajax jquery return没有返回值
- EXT中创建一个弹窗效果
- JavaScript点击事件-一个按钮触发另一个按钮
- BZOJ3110: [Zjoi2013]K大数查询(整体二分)
- 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践
- 字符串匹配【模板】(luogu 3375)
- 杭电2066一个人的旅行
- 面试题目_数据分析之hive sql面试题目
- Mysql5.7及以上版本的MySQL下载、安装及配置教程(附图)
- maya python 游戏与影视编程指南_Maya Python 游戏与影视编程指南
- N!阶层末尾有多少0
- ps色板文件怎么导入?
- Crystal Reports - New Report
- 2022CUDA夏季训练营Day5实践
- 【安防百科】HDSDI、960H、HDCVI、HDTVI、AHD方案对比
- 远程桌面访问之VNC使用指南
- SCRUM项目 4.0
热门文章
- 在 JavaScript 中动态创建表格、按钮和 DIV
- 显卡超频linux,Linux 5.12内核将支持Radeon RX 6000系列显卡超频
- 级数(函数项),完备正交函数集,傅里叶级数
- c语言行列的互换及常见的错误类型
- IntelliJ IDEA中文网
- CSAPP Lab2 实验记录 ---- Bomb Lab(Secret Phase彩蛋解析)
- 程序员要从“美团崩溃”中学习的痛点
- 李炎恢老师XHTML视频教程DIV+CSS教程与课件代码
- 最简单的爬虫,用pandas爬取表格数据
- 高中计算机备课教案模板,高中信息技术教案:《程序设计基础》教案模板