分享

使用jstl写了个通用的jsp数据库分页,就像写php一样的简单轻松方便。...

 qzg589 2005-08-30

在jstl中也可以像php那样随时声明变量而且不操心变量的类型。
下面的代码只需要修改数据库连接的参数,和需要显示的表名即可。


<%@page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java./jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java./jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java./jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java./jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>lizongbo 的 jstl 例子</title>
</head>
<body bgcolor="#ffffff">
<c:set var="db_driver" value="org.gjt.mm.mysql.Driver"/>
<c:set var="db_url" value="jdbc:mysql://localhost:3306/lizongbo?useUnicode=true&characterEncoding=UTF-8"/>
<c:set var="db_user" value="lizongbo"/>
<c:set var="db_password" value="lizongbo"/>
<c:set var="table_name" value="tbl_login_log"/>
<c:set var="crtpageno" value="${param.crtpageno > 0? param.crtpageno:1}"/>
<c:set var="countperpage" value="${param.countperpage > 0? param.countperpage:5}"/>
<c:set var="limitb" value="${(crtpageno-1)*countperpage}"/>
<sql:setDataSource driver="${db_driver}" user="${db_user}" password="${db_password}" url="${db_url}" var="mydb" scope="application"/>
<sql:query var="myrs" sql="select count( * ) as countnum from ${table_name}" dataSource="${mydb}" scope="request"></sql:query>
<c:out value="一共有${myrs.rows[0].countnum}条记录<br/>" escapeXml="false"></c:out>
<c:set var="allpageno" value="${myrs.rows[0].countnum % countperpage ==0 ? (myrs.rows[0].countnum) / countperpage : (myrs.rows[0].countnum) / countperpage +1}" scope="request"/>
<%String alpn =String.valueOf( java.lang.Math.round(Double.parseDouble(String.valueOf(request.getAttribute("allpageno")))));%>
<c:set var="allpageno" value="<%=alpn%>"/>
<c:set var="crtpageno" value="${crtpageno > allpageno ? allpageno : crtpageno}"/>
<c:set var="prepageno" value="${crtpageno>1 ? crtpageno-1 : crtpageno}"/>
<c:set var="nrepageno" value="${crtpageno >= allpageno? allpageno : crtpageno+1}"/>
<a href="<%=request.getRequestURI()%>?crtpageno=1">第一页</a>
<a href="<%=request.getRequestURI()%>?crtpageno=<c:out value="${prepageno}" />">上一页</a>
<a href="<%=request.getRequestURI()%>?crtpageno=<c:out value="${nrepageno}" />">下一页</a>
<a href="<%=request.getRequestURI()%>?crtpageno=<c:out value="${allpageno}" />">最后一页</a>
<sql:query var="myrs" sql="select * from ${table_name} LIMIT ${limitb}, ${countperpage} " dataSource="${mydb}" scope="request"></sql:query>
<table border="1">
<c:forEach var="row" items="${myrs.rows}" varStatus="status">
<c:if test="${status.first}">
<tr>
<c:forEach var="colname" items="${row}">
<td>
<c:out value="${colname.key}" escapeXml="true"/>
</td>
</c:forEach>
</tr>
</c:if>
<tr>
<c:forEach var="col" items="${row}">
<td>
<c:out value="${col.value}" escapeXml="true"/>
</td>
</c:forEach>
</tr>
<c:set var="crtrsnum" value="${status.count}"/>
</c:forEach>
</table>
当前是第:<c:out value="${limitb+1}"/>到第<c:out value="${limitb+crtrsnum}"/>条记录
<br/>
</body>
</html>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多