struts2 标签 分页 (数字+省略号)
2012-03-20 18:34
176 查看
前段时间做一小项目,小得只有一个人,期限一周。鉴于只有不到20个页面,业务也不是很复杂,也就没用公司的平台。徒手写吧……临到结束,卡住了,被分页卡住了。以前也写过分页,不外乎[首页][上一页]1234[下一页][末页],撑死再加个[共12条记录]。
怎么实现页数部分显示,中间有省略号的样式呢,而且使用struts2标签?如下图所示:
长夜漫漫,眼看就要天亮,怎么办?KK,不干了,应付一下得了,反正也没人在意。辗转反侧,难以入眠。想想上学时,为了一个问题没日没夜熬啊,课也不上了,就为敲出一个问题。要这么睡去,是在不甘。继续百度google,都翻了20多页了,貌似都是一个人写的,碰到一个转载的免不了愤愤不已,老大,倒什么乱啊!睁不开眼了,去了趟qzone,什么说说,weibo,分享,相册,有了:
(cdsn的编辑器真不好用!)
ps:近日在36氪上看到一篇介绍去了Bookworm arXiv,看到几个jquery 插件,发现了jQuery Pagination,jquery 的分页插件,不错不错……
怎么实现页数部分显示,中间有省略号的样式呢,而且使用struts2标签?如下图所示:
长夜漫漫,眼看就要天亮,怎么办?KK,不干了,应付一下得了,反正也没人在意。辗转反侧,难以入眠。想想上学时,为了一个问题没日没夜熬啊,课也不上了,就为敲出一个问题。要这么睡去,是在不甘。继续百度google,都翻了20多页了,貌似都是一个人写的,碰到一个转载的免不了愤愤不已,老大,倒什么乱啊!睁不开眼了,去了趟qzone,什么说说,weibo,分享,相册,有了:
<!--first --> <s:url id="first" value="listAll"> <s:param name="page.pageCurrent" value="1"></s:param> </s:url> <!--pre --> <s:url id="pre" value="listAll"> <s:param name="page.pageCurrent" value="page.prePage"></s:param> </s:url> <!--current --> <s:url id="pageCurr" value="listAll"> <%--<s:param name="page.pageCurrent" value="page.pageCurrent"></s:param>--%> </s:url> <!--next --> <s:url id="next" value="listAll"> <s:param name="page.pageCurrent" value="page.nextPage"></s:param> </s:url> <!--last --> <s:url id="last" value="listAll"> <s:param name="page.pageCurrent" value="page.pageTotalSize"></s:param> </s:url> <!-- 设置起始页 --> <s:if test=" page.pageCurrent - page.offsetPage > 0 "> <s:set name="start" value="page.pageCurrent - page.offsetPage" /> </s:if> <s:else> <s:set name="start" value="1" /> </s:else> <!-- 设置结束页 --> <s:if test="page.pageCurrent + page.offsetPage <= page.pageTotalSize"> <s:set name="end" value="page.pageCurrent+2" /> </s:if> <s:else> <s:set name="end" value="page.pageTotalSize" /> </s:else> <!-- page --> <s:if test="page.pageAllRecords>0"><!--如果有记录的话 --> <div class="pagination"> <span><!--显示记录总数 --> Total Records[<s:property value="page.pageAllRecords" />] </span> <s:if test="page.hasPrePage"><!--上一页可用 --> <s:a href="%{pre}" title="Previous Page">« Previous</s:a> </s:if> <s:else><!--上一页不可用,灰色处理 --> <s:a href="javascript:void(0);" title="Previous Page" cssStyle="color:#D0D0D0;">« Previous</s:a> </s:else> <s:if test="page.pageCurrent - page.offsetPage <= 1"> </s:if> <s:else> <s:a href="%{pageCurr}?page.pageCurrent=1" title="Current Page" cssClass="number"> <s:property value="1" /> </s:a> <s:if test="page.pageCurrent - page.offsetPage > 2"> <span>...</span> </s:if> <s:else> </s:else> </s:else> <s:bean name="org.apache.struts2.util.Counter" id="counter"> <s:param name="first" value="#start" /> <s:param name="last" value="#end" /> <s:iterator status="sta"> <!-- 如果为当前页 ,设置选中样式 --> <s:if test="page.pageCurrent==current-1"> <s:a href="%{pageCurr}?page.pageCurrent=%{page.pageCurrent}" title="Current Page" cssClass="number current"> <s:property value="page.pageCurrent" /> </s:a> </s:if> <s:else><!-- 非当前页 ,设置样式 --> <s:a href="%{pageCurr}?page.pageCurrent=%{current-1}" title="%{#sta.index+1}" cssClass="number"> <s:property /> </s:a> </s:else> </s:iterator> </s:bean> <s:if test="page.pageCurrent + page.offsetPage > page.pageTotalSize- 1"> </s:if> <s:else> <s:if test="page.pageCurrent + page.offsetPage < page.pageTotalSize- 1"> <span>...</span> </s:if> <s:else> </s:else> <s:a href="%{pageCurr}?page.pageCurrent=%{page.pageTotalSize}" title="Current Page" cssClass="number"> <s:property value="page.pageTotalSize" /> </s:a> </s:else> <s:if test="page.hasNextPage"><!--下一页可用 --> <s:a href="%{next}" title="Next Page">Next »</s:a> </s:if> <s:else><!--下一页不可用 ,灰色处理--> <s:a href="javascript:void(0);" title="Next Page" cssStyle="color:#D0D0D0;">Next »</s:a> </s:else> </div> </s:if>qzone 相册分页!!! 对,以上算法就是出自qzone相册!在此借鉴一下,其大致结构摘出来就是
start = (this.currentPage - this.offsetPage > 0) ? (this.currentPage - this.offsetPage) : 1; end = (this.currentPage + this.offsetPage <= this.totalPage) ? (this.currentPage + this.offsetPage) : this.totalPage; if(this.currentPage - this.offsetPage <= 1){ }else{ FIRST_ENABLE; if(this.currentPage - this.offsetPage > 2){ ELLIPSIS }else{ } } (this.currentPage == 1) ? TEMPLATE.PREVIOUS_DISABLE: TEMPLATE.PREVIOUS_ENABLE (this.currentPage == this.totalPage) ? TEMPLATE.NEXT_DISABLE: TEMPLATE.NEXT_ENABLE if(this.currentPage + this.offsetPage > this.totalPage - 1){ }else{ if(this.currentPage + this.offsetPage < this.totalPage - 1){ ELLIPSIS }else{ } LAST_ENABLE }
(cdsn的编辑器真不好用!)
ps:近日在36氪上看到一篇介绍去了Bookworm arXiv,看到几个jquery 插件,发现了jQuery Pagination,jquery 的分页插件,不错不错……
相关文章推荐
- struts2自定义分页标签
- Struts2中实现自定义分页标签
- struts2 counter循环标签在分页中的使用
- struts2自定义分页标签
- struts2的分页标签
- struts2、hibernate 分页(自定义标签)
- 在Struts2中实现自定义分页标签全攻略(一)
- struts2的分页,使用迭代器标签<s:iterator
- Struts2自定义标签4自定义分页标签
- struts2自定义分页标签
- struts2标签循环一个数字及判断字符串相等的用法
- Web框架梳理:第一章:Struts2入门、传值、分页、对象、值栈、OGNL、响应方式、标签、拦截器
- 在JSP中使用Struts2标签分页 限制页码只显示10页 带分页算法 样式
- Struts2中实现自定义分页标签
- struts2标签和hibernate实现分页
- 用hibernate实现动态查询+分页的模板,另附struts2的标签在分页中的使用
- STRUTS2自定义分页标签及过程中的问题
- Struts2 S标签 数字格式化成金额输出
- Struts2自定义分页标签
- 在JSP中使用Struts2标签分页 限制页码只显示10页 带分页算法 样式