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实现分页的更多相关文章

  1. 分享jstl实现分页,类似百度分页

    <c:if test=" ${requestScope.curPage <= 0}"> </ c:if> < c:if test=" ...

  2. 住javaWeb分页实现(模拟百度首页)

    本文来源于 http://blog.csdn.net/tjpu_lin/article/details/41050475 近期在开发一个项目,项目中有非常多数据展示的模块.所以要用到分页,网上搜了非常 ...

  3. 分页探究--Filter+JSTL

    最近卡了一个功能就是分页,查了很多资料,分页大概是两种类型:一种是把数据库的东西全部查出来然后放在session里,用list一页一页传到页面,这样的消耗比较大;另一种就是使用sql语句的limit来 ...

  4. jstl标签怎么实现分页中下一页

    <script type="text/javascript">           //分页按钮处理        function goPageAction(page ...

  5. JAVA基础之JDBC开发、JSTL语法、EL表达式与数据分页

    一.直接使用JDBC开发的问题 1.当表中的列很多时,需要写很长的SQL语句 还需要写大量 setXXX() 设置参数语句 读取数据时还需要写大量setXXXX()设置属性语句 2.非常容易出错,而且 ...

  6. 分页管理的JSTL实现

    userMgr.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  7. 使用JSTL的sql:query标签制作分页查询遇到NoSuchFieldError: deferredExpression

    参考:http://hi.baidu.com/desyle/item/4fe650265792d7182a0f1c33 症状: 如题所述,代码如下 <sql:query var="re ...

  8. JSTL(使用if-else实现分页)

    一.认识标签 <c:choose>标签没有任何属性. <c:when>标签具有以下列出的一个属性. <c:otherwise>标签没有任何属性. <c:whe ...

  9. 数据库分页和使用jstl标签替换分页的jsp代码

    参考链接: http://www.mossle.com/docs/jsp/html/jsp-ch-15.html

随机推荐

  1. 超图(hypergraph)

    超图是什么? 超图的本质特征在于它的超边,它可以连接两个以上的结点(包括两个).按这样的意义来说,我们所熟悉的普通图只是超图的一个特例而已,而超图则定义了一个更加宽泛的图. 超图的数学定义为:对于超图 ...

  2. fastCGI (二)各方优劣

    1. 克服 CGI 的瓶颈 1.1 令人头痛的效率问题 拜 CGI 之赐,网站不再只有固定不变的图形和文字,藉由程序动态产生的网页可以让网站好象『活』了起来.小从简单的网页计数器,留言版,大至处理众多 ...

  3. 【测试】手工搭建DG

    前言:(一)准备工作: 1.数据库要处于归档模式: 2.监听参数:local_listener 默认值为空--1521 3.关闭闪回(可能会触发数据库的bug,备库不能开闪回) 4.如果有外部表,外部 ...

  4. OSGI.NET 学习笔记--应用篇

    关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1.  OSGI.NET 与UIOSP OSGi是Open Service Ga ...

  5. 非常不错的IT进阶站点

    1:CSDN http://www.csdn.net/ 2:Iteye http://www.iteye.com 3:拼吾爱 http://pin5i.com 4:月光博客 http://www.wi ...

  6. 把数组转换成sql中能使用的字符串

    1.数组对象转换成字符串,拼接成符合sql语句的语法 2.代码如下例子 public static void testString(){        String[] str=new String[ ...

  7. Java程序员面试宝典——重要习题整理

    1.下面程序的输出结果是() public class Test { public static void main(String[] args) { int j = 0 ; for(int i = ...

  8. MFC TOOLBAR

    m_imagelist.Create(,,ILC_COLOR24|ILC_MASK,,); CBitmap bmp; ;i<;i++) { int a= bmp.LoadBitmapW(IDB_ ...

  9. PowerDesigner之PDM检查

    一.PDM检查 1.检查项的设置 PDM错误级别分为Error和Warning两种.Error是致命错,一旦发现这类错误,系统会自动CDM生成PDM或者OOM,Warning是警告错误,是系统认为不合 ...

  10. 【Qt 】QSettings写ini配置文件

    QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <Q ...