jsp+urlrewrite实现html分页简单粗暴实现
今天去檢查一同事寫的一分頁實現(xiàn),看了有點郁悶,都說了要換成html實現(xiàn)方便搜索引擎收錄,他還是用的js,真是暈。還得幫他解決
好吧。言歸正傳,我在他的基礎(chǔ)上粗暴的修改了下,達到了基本的效果,帶數(shù)字分頁
先一步一步來,在controller層model里面增加控制起始和結(jié)束頁,pageUrl
先簡單粗暴點把分頁的顯示邏輯理好讓效果出來,再把分頁url放到pageUrl,然后再進一步做html偽靜態(tài)
<div class="tcdPageCode2"><c:if test="${pageNum>1}"><a href="${pageUrl}?pageNum=1" class="tcdNumber">首頁</a><a href="${pageUrl}?pageNum=${pageNum-1}"> < 上一頁</a></c:if><c:forEach var="i" begin="1" end="${totalPage}" step="1"><c:if test="${pageNum==i}"><a class="current">${i}</a></c:if><c:if test="${pageNum!=i}"><a href="${pageUrl}?pageNum=${i}" class="tcdNumber">${i}</a></c:if></c:forEach><c:if test="${totalPage>endPage}"><a href="${pageUrl}?pageNum=${endPage+1}">...</a></c:if><c:if test="${pageNum<totalPage}"><a href="${pageUrl}?pageNum=${pageNum+1}">下一頁 > </a><a href="${pageUrl}?pageNum=${totalPage}" class="tcdNumber">尾頁</a></c:if></div>上面這種需要自己手動來控制...的顯示。當(dāng)然這個有很多邏輯,你可以根據(jù)實現(xiàn)的效果來設(shè)計
?
第二種實現(xiàn)方式,就不用上面新加的代碼,直接用下面已有的變量
<div class="tcdPageCode1"><c:if test="${pageNum== 1}"><a class="tcdNumber">首頁</a><a class="tcdNumber">上一頁</a></c:if><c:if test="${pageNum != 1}"><a href="${pageUrl}?pageNum=1" class="tcdNumber">首頁</a><a href="${pageUrl}?pageNum=${pageNum-1}" class="tcdNumber">上一頁</a></c:if><c:if test="${pageNum-3 <= totalPage && pageNum > 2}"><a href="${pageUrl}?pageNum=1" <c:if test="${pageNum==1 }">class="current"</c:if>>1</a><a class="tcdNumber">...</a></c:if><c:forEach begin="0" end="${totalPage-1}" varStatus="status"><c:if test="${pageNum - status.index >= -1 && pageNum <= status.index+2}"><a <c:if test="${pageNum==status.index + 1 }">class="current"</c:if>href="${pageUrl}?pageNum=${status.index+1 }">${status.index+1 }</a></c:if></c:forEach><c:if test="${pageNum+2 < totalPage}"><a >...</a><ahref="${pageUrl}?pageNum=${totalPage}" class="tcdNumber">${totalPage }</a></c:if><c:if test="${pageNum ==totalPage}"><a class="tcdNumber">下一頁</a><a class="tcdNumber">尾頁</a></c:if><c:if test="${pageNum !=totalPage}"><a href="${pageUrl}?pageNum=${pageNum+ 1}" class="tcdNumber">下一頁</a><a href="${pageUrl}?pageNum=${totalPage}" class="tcdNumber">尾頁</a></c:if><p>當(dāng)前第${pageNum}頁 總共${totalPage}頁</p></div>?
好了。這里分頁部分弄好了。其實如果有需求加select 跳轉(zhuǎn) 也好實現(xiàn)的。
下面來弄urlrewrite實現(xiàn)偽靜態(tài)了
?maven中引入 urlrewrite包
<dependency><groupId>org.tuckey</groupId><artifactId>urlrewrite</artifactId><version>2.5.2</version></dependency>?
在web.xml里面配置
<!-- url重寫start --><filter><filter-name>UrlRewriteFilter</filter-name><filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class></filter><filter-mapping><filter-name>UrlRewriteFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping><!-- url重寫end -->再在web.xml根目錄下加一個urlrewrite.xml配置文件
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN""http://tuckey.org/res/dtds/urlrewrite3.0.dtd"> <!-- Configuration file for UrlRewriteFilter http://tuckey.org/urlrewrite/ --> <urlrewrite><!--<rule><from>/name/(.*)</from><to>/MyName.jsp?name=$1</to></rule>--><rule><from>/xinniuBBS/baike/([0-9]+).html</from><to>/xinniuBBS/baike?pageNum=$1</to></rule> </urlrewrite>上面的from 可以配成任意規(guī)則,比如/credit/([0-9]+).html,那么對應(yīng)的上面的a標(biāo)簽里面的href 就要調(diào)整成對應(yīng)的寫法
就不再是${pageUrl}?pageNum=${pageNum}了。就得變換成 /credit/${pageNum}.html 或??/credit/${totalPage}.html?
這里為了方便以后做搜索引擎優(yōu)化,同樣在urlrewrite里面也可以變換規(guī)則,把鏈接做得更好看,對搜索引擎爬蟲更友好
ok大功搞成
如果你覺得不錯,點個贊支持下哦。
轉(zhuǎn)載于:https://www.cnblogs.com/fangyuan303687320/p/5525506.html
總結(jié)
以上是生活随笔為你收集整理的jsp+urlrewrite实现html分页简单粗暴实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cobbler全自动安装CentOS(整
- 下一篇: CocoaPosd使用详解