【发布时间】:2011-07-14 04:55:06
【问题描述】:
我有一个非常简单的自定义 JSP 标记,用于生成分页链接。大致如下:
<span id="${id}" class="paginationLinks ${cssClass}">
<c:if test="${currentPage gt 1}">
<!-- Links to previous page(s) -->
</c:if>
<span class="paginationCurrentPage">
Page ${currentPage}
[DEBUG: current=${currentPage},
total=${totalPages},
show=${currentPage lt totalPages}
inverse=${currentPage gt totalPages}]
</span>
<c:if test="${currentPage lt totalPages}">
<!-- Links to next page(s) -->
</c:if>
</span>
问题是转到下一页的链接没有显示在第一页之后(currentPage = 1)。转到前一页的链接在每个页面上都可以正常工作。我的调试块也得到了一些真正奇怪的输出:
[DEBUG: current=1, total=10, show=true inverse=false] //first page, correct
[DEBUG: current=2, total=10, show=false inverse=true] //second page; 2 > 10 == true? wtf???
[DEBUG: current=9, total=10, show=false inverse=true] //ninth page, still incorrect
[DEBUG: current=10, total=10, show=false inverse=false] //tenth page, correct
currentPage 和totalPages 都是long 类型的请求属性,并通过声明的标记属性传递给标记。那么我做错了什么来产生像2 > 10 == true这样的疯狂输出?
更新
如果我在比较中将totalPages 替换为文字10,它可以正常工作,但这确实不能解决问题。
【问题讨论】: