用于分页目的的Java taglib

时间:2011-09-13 01:55:19

标签: java jsp jstl

我正在尝试使用JSTL在我现有的JSP代码中创建一个分页,但我不确定我在其中一个示例中看到的以下语法。

    <sql:setDataSource var="dataSrc"
     url="jdbc:oracle:thin:@127.0.0.1:1521:database_name"
     driver="oracle.jdbc.driver.OracleDriver"
     user="user_name" password="pass_word"/>

然后运行查询:

    <sql:query var="queryResults" dataSource="${dataSrc}">
    select system_id, employeename from employees
    </sql:query>

然后,您在网页上显示结果:

    <table>
    <tr>
    <th>ID</th>....

我的问题是<sql: query var="queryResults"这是我必须使用的标准语法,或者我在query var= ?中放置了什么,而且dataSource ="{dataSrc}"这是标准代码还是我必须修改它?

如果有人可以向我介绍如何在每页上显示我的表格或行数限制为10的源代码,我将非常感激。

2 个答案:

答案 0 :(得分:2)

我之前写过自己的分页标签 - 我真的希望自己没有。

我建议你看一下displaytag。它是一个易于使用的开源标记库,几乎可以满足您的所有分页要求。它产生的HTML是干净的,符合标准的,最重要的是,它已经写成: - )

对于正确的分页,使用方法可以简单:

<display:table name="${paginatedList}" partialList="true" pageSize="10" size="${totalNumberOfItems}" />

$ {paginatedList}例如是结果集的第1到10项(您需要在DAO中编写代码以便从数据库中检索项目。大多数ORM库允许您非常轻松地执行此操作,或者您可以使用SQL执行此操作 - 请参阅下面的实施例)。

$ {totalNumberOfItems}是您的查询将返回的项目总数,如果您没有将结果数量限制为页面大小为10.同样,大多数ORM框架允许您相当容易地执行此操作,或者您再次使用可以用SQL做到(例如选择count(*)...) - 见下文......

有关Hibernate中的分页示例,请查看this。有关JDBC示例,请查看this

答案 1 :(得分:0)

有了一些额外的知识,你可以使用Struts 2.0分页

JSP代码spinet来自参考指南

<pg:pager
items="<%= searchResultPagerSize %>"
index="center"
url=""
maxPageItems="<%= numberOfItemsPerPage %>"
maxIndexPages="<%= maxNumberOfPagesToShow %>"
isOffset="<%= true %>"
export="offset,currentPageNumber=pageNumber"
scope="request">

<%-- START: the visual element of the pager --%>
<%--
START: You can take any of the pages in the pagertags war file in the folder /WEB-INF/JSP and put them in here instead
--%>
<pg:index export="totalItems=itemCount">
    <pg:page export="firstItem, lastItem">
        <div class="resultInfo">
            Displaying results <strong><%= firstItem%>-<%= lastItem%></strong> of <strong><%= totalItems%></strong> found
        </div>
    </pg:page>

    <div class="rnav">
        <span class="rnavLabel">Results:</span> 
        <pg:prev export="pageUrl">
            <a href="<%= pageUrl%>" class="rnavLink">« Prev</a> 
        </pg:prev>
        <pg:pages export="pageUrl,pageNumber,firstItem,lastItem">
            <% if (pageNumber == currentPageNumber) {%>
             <span class="rnavCurr"><%= firstItem%>-<%= lastItem%></span>
            <% } else {%>
             <a href="<%= pageUrl%>" class="rnavLink"><%= firstItem%>-<%= lastItem%></a>
            <% }%>
        </pg:pages>
        <pg:next export="pageUrl">
              <a href="<%= pageUrl%>" class="rnavLink">Next »</a>
        </pg:next>
    </div>
</pg:index>
<%--
END: You can take any of the pages in the pagertags war file in the folder /WEB-INF/JSP and put them in here instead
--%>
<%-- END: the visual element of the pager --%>

请参阅here以获取完整参考。我认为这正是你所需要的。