后台使用的是后台使用hibernateTemplate和自定义工具类PageNoUtil实现,
这个需要看我的另外的一篇文章 http://blog.csdn.net/fly_fish456/article/details/7921558
前台使用struts2标签实现
<div class="pagelist">
<span>共 <s:property value="totalPage"/> 页/<s:property value="totalRecord"/>条记录 </span>
<span><a href="admin/goodsInfo/goodsInfo_list?pageNumber=0" >首页</a></span>
<s:if test="currentPage > 0">
<a href="admin/goodsInfo/goodsInfo_list?pageNumber=<s:property value="currentPage-1"/>">上页</a>
</s:if>
<s:else>
<a href="admin/goodsInfo/goodsInfo_list?pageNumber=<s:property value="0"/>">上页</a>
</s:else>
<!-- 如果当前页面后面剩余的页面小于5,就把剩下的全部页面显示出来 -->
<s:if test="totalPage - currentPage < 5">
<s:set value="totalPage - currentPage - 1" name="test"></s:set>
</s:if>
<s:else>
<s:set value="4" name="test"></s:set>
</s:else>
<!-- 这个是模拟的 for循环 current变量是迭代器当前循环值,这里是从0开始,每次循环+1 -->
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="0" />
<s:param name="last" value="test" />
<s:iterator>
<!-- 对于当前页码进行强调 -->
<s:if test="current == 1">
<a href="admin/goodsInfo/goodsInfo_list?pageNumber=<s:property value="currentPage+current-1"/>">
<strong><s:property value="currentPage+current" /> </strong>
</a>
</s:if>
<s:else>
<a href="admin/goodsInfo/goodsInfo_list?pageNumber=<s:property value="currentPage+current-1"/>">
<s:property value="currentPage+current" />
</a>
</s:else>
</s:iterator>
</s:bean>
<s:if test="currentPage < totalPage - 1">
<a href="admin/goodsInfo/goodsInfo_list?pageNumber=<s:property value="currentPage+1"/>">下页</a>
</s:if>
<s:else>
<a href="admin/goodsInfo/goodsInfo_list?pageNumber=<s:property value="totalPage-1"/>">下页</a>
</s:else>
<a href="admin/goodsInfo/goodsInfo_list?pageNumber= <s:property value="totalPage-1"/>" >末页</a>
</div>
这个就是主要的逻辑。
效果如下: