JSTL实现分页
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
下面介绍使用jstl实现的简单分页。引入的conn.jsp文件是使用jstl连接数据库文件,根据MVC的思想,JSP作为View层,只是用来负责显示操作,所以在大型项目开发中一般不推荐使用JSTL的数据库标签。
开发环境:Myeclipse10、sqlservler2005、tomcat7.0.40
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@include file="conn.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'fenye.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<div align="center">
<c:set var="pagesize" value="4" scope="page" /> <sql:query var="result1" maxRows="6" startRow="0"> select * from Table_1</sql:query> <!--记录数 --> <c:set var="number" value="${result1.rowCount}" scope="page" /> <!-- 计算分页数 --> <c:set var="pagenumber" value="${(number+pagesize-1)/pagesize}" /> <font color="blue"><c:out value="${number}" /></font> <table border="1" align="center">
<tr>
<td>书名</td>
<td>作者</td>
<td>价格</td>
<th>操作</th>
</tr>
<!--判断是否有信息 -->
<!-- 如果类别为空 otherwise -->
<c:choose> <c:when test="${empty result1.rows}">
<tr>
<td colspan="4" align="center">暂时没有图书!</td>
</tr>
</c:when> <c:otherwise> <c:forEach items="${result1.rowsByIndex}" var="row1" begin="${param.start}" end="${param.start+pagesize-1}" >
<tr>
<td>${row1[0]}</td>
<td>${row1[1]}</td>
<td>${row1[2]}</td>
<td><a href="delete.jsp?name=${row1[0]}">删除</a></td>
</tr>
</c:forEach> </c:otherwise>
</c:choose>
</table> <!--分页 -->
<c:choose>
<c:when test="${param.start>0}" >
<a href="fenye.jsp?start=${param.start-pagesize}">上一页</a>
</c:when>
<c:otherwise>
上一页
</c:otherwise>
</c:choose> <c:choose>
<c:when test="${param.start+pagesize<number}" >
<a href="fenye.jsp?start=${param.start+pagesize}">下一页</a>
</c:when>
<c:otherwise>
下一页
</c:otherwise>
</c:choose> <!-- 显示记录数 -->
共<font color="red">${number}</font>条记录 <!-- 显示分页数 -->
共<fmt:parseNumber type="number" value="${pagenumber}" integerOnly="true" />页 </div>
</body>
</html>
JSTL标签连接数据库conn.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'conn.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body> <sql:setDataSource
url="jdbc:sqlserver://localhost:1433;databaseName=library"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
user="sa"
password="123"
/>
</body>
</html>
导出的数据库脚本:
USE [library]
GO
/****** 对象: Table [dbo].[Table_1] 脚本日期: 07/04/2013 14:32:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table_1](
[name] [nchar](10) NOT NULL,
[author] [char](10) NULL,
[price] [int] NOT NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO
SET ANSI_PADDING OFF
分页实现结果如下:

JSTL实现分页的更多相关文章
- 分享jstl实现分页,类似百度分页
<c:if test=" ${requestScope.curPage <= 0}"> </ c:if> < c:if test=" ...
- 住javaWeb分页实现(模拟百度首页)
本文来源于 http://blog.csdn.net/tjpu_lin/article/details/41050475 近期在开发一个项目,项目中有非常多数据展示的模块.所以要用到分页,网上搜了非常 ...
- 分页探究--Filter+JSTL
最近卡了一个功能就是分页,查了很多资料,分页大概是两种类型:一种是把数据库的东西全部查出来然后放在session里,用list一页一页传到页面,这样的消耗比较大;另一种就是使用sql语句的limit来 ...
- jstl标签怎么实现分页中下一页
<script type="text/javascript"> //分页按钮处理 function goPageAction(page ...
- JAVA基础之JDBC开发、JSTL语法、EL表达式与数据分页
一.直接使用JDBC开发的问题 1.当表中的列很多时,需要写很长的SQL语句 还需要写大量 setXXX() 设置参数语句 读取数据时还需要写大量setXXXX()设置属性语句 2.非常容易出错,而且 ...
- 分页管理的JSTL实现
userMgr.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...
- 使用JSTL的sql:query标签制作分页查询遇到NoSuchFieldError: deferredExpression
参考:http://hi.baidu.com/desyle/item/4fe650265792d7182a0f1c33 症状: 如题所述,代码如下 <sql:query var="re ...
- JSTL(使用if-else实现分页)
一.认识标签 <c:choose>标签没有任何属性. <c:when>标签具有以下列出的一个属性. <c:otherwise>标签没有任何属性. <c:whe ...
- 数据库分页和使用jstl标签替换分页的jsp代码
参考链接: http://www.mossle.com/docs/jsp/html/jsp-ch-15.html
随机推荐
- 站点发布到 IIS 后,System.Data.SqlLite.dll 末找到
近来在部署一个站点到客户的服务器 IIS 上时,打开后却出现一个错误的页面,系统提示System.Data.SqlLite.dll 末找到,在站点部署到客户的服务器之前时,在本地测试,却没有发现什么异 ...
- Java Annotation 机制源码分析与使用
1 Annotation 1.1 Annotation 概念及作用 1. 概念 An annotation is a form of metadata, that can be added ...
- Java中自定泛型方法
泛型用到哪些集合:List Set Map List<String> list=new ArraList<String>(); list.add("美女") ...
- eclipse中logcat偶尔不显示log的问题解决办法
Android开发过程中 eclipse 经常会出现 logcat突然就是不现实log的情况.经常遇到,一直没有解决.后来解决了,记录一下. 默认的设置是error 改成verbos 问题解决.
- kickstrat
定制部分 硬盘分区 root密码 网络地址 公共部分 %pre% %post% tcp调优 集中配置程序(ansible) sudo配置
- Struts2使用ModelDriven后JSON数据返回不正确
在struts.xml中加入<param name="root">action</param> <result name="exist&qu ...
- libpcap报文解析: ipv4、ipv6 @ 2014.7.2
#include <string.h> #include <stdlib.h> #include <pcap.h> #include <stdio.h> ...
- (笔记)angular material 选项卡用法
- 011OK6410开发板介绍
1.系统资源: (1)处理器:三星ARM11,S3C6410A,主频533MHz/667MHz (2)nor flash (3)nand flash:1G字节NAND Flash (4)RAM:128 ...
- 3月2日 Linked List Cycle
今天星期天,准备好周一的PPT内容,再回来做题,以后考虑周末做一个APP或者微信帐号玩吧. 回到题目, Linked List Cycle,一个检查单项链表是否有环路的问题. 题目周五的时候就简单做过 ...