• jsp+urlrewrite实现html分页简单粗暴实现


    今天去检查一同事写的一分页实现,看了有点郁闷,都说了要换成html实现方便搜索引擎收录,他还是用的js,真是晕。还得帮他解决

    好吧。言归正传,我在他的基础上粗暴的修改了下,达到了基本的效果,带数字分页

    先一步一步来,在controller层model里面增加控制起始和结束页,pageUrl

    先简单粗暴点把分页的显示逻辑理好让效果出来,再把分页url放到pageUrl,然后再进一步做html伪静态

    复制代码
         <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>
    复制代码

    上面这种需要自己手动来控制...的显示。当然这个有很多逻辑,你可以根据实现的效果来设计

    第二种实现方式,就不用上面新加的代码,直接用下面已有的变量

    复制代码
    <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><a
                            href="${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>
                        当前第${pageNum}页 总共${totalPage}页
                    </p>
                </div>
    复制代码

    好了。这里分页部分弄好了。其实如果有需求加select 跳转 也好实现的。

    下面来弄urlrewrite实现伪静态了

     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>
    复制代码
  • 相关阅读:
    C#计算两个时间年份月份天数(根据生日计算年龄)差,求时间间隔
    C#四舍五入保留一位小数
    给Editplus去掉.bak文件
    $().each() 与 $.each()解析
    VS 2013+Qt 5.4.1
    HDU 5228 ZCC loves straight flush( BestCoder Round #41)
    产品经理的修炼:如何把梳子卖给和尚
    c++ STL unique , unique_copy函数
    linux定时备份mysql数据库文件
    Python——异常基础
  • 原文地址:https://www.cnblogs.com/keyi/p/5773213.html
Copyright © 2020-2023  润新知