今天去检查一同事写的一分页实现,看了有点郁闷,都说了要换成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>

上面的from 可以配成任意规则,比如/credit/([0-9]+).html,那么对应的上面的a标签里面的href 就要调整成对应的写法

就不再是${pageUrl}?pageNum=${pageNum}了。就得变换成 /credit/${pageNum}.html 或  /credit/${totalPage}.html

这里为了方便以后做搜索引擎优化,同样在urlrewrite里面也可以变换规则,把链接做得更好看,对搜索引擎爬虫更友好

ok大功搞成

如果你觉得不错,点个赞支持下哦。

jsp+urlrewrite实现html分页简单粗暴实现的更多相关文章

  1. 简单粗暴地理解js原型链--js面向对象编程

    原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...

  2. 制作自己的MVC框架(一)——简单粗暴的实现

    现在市面上有很多成熟的MVC框架,可以拿来直接用,但自己造一下轮子其实也挺有意思的. 下面先来看个最简单粗暴的MVC实现. 5个文件就能实现最简单的MVC,在Apache中设置一个虚拟目录,配置个简单 ...

  3. 足球游戏论坛数据分析--简单粗暴的K均值聚类

    在<<足球游戏论坛数据分析--简单粗暴的贝叶斯>>中尝试了贴标签后,一直觉得结果无法接受, 慢慢回想, 其实选择的算法是错误的,原因有 论坛帖子分类并非就是PC/PS/XBOX ...

  4. 简单粗暴地理解 JavaScript 原型链 (一个充满歪门邪理的理解方法,有助于新手哦!)

    原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...

  5. 好文要顶之 --- 简单粗暴地理解 JavaScript 原型链

    原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...

  6. 简单粗暴的对android so文件加壳,防止静态分析

    转载自http://bbs.pediy.com/showthread.php?t=191649 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路.最近翻看各种资料,有了一些思路.看到论坛 ...

  7. ssm+jsp+自定义标签实现分页,可以通用(前端实现)

    近期做了一些分页方面的开发,大致梳理一下 1 jsp页面上关于分页的代码 <tr> <td colspan="9"> <ule1:pagination ...

  8. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  9. 简单粗暴的在vmware虚拟机中固定ip

    虚拟机对于很多做测试的或者在学习测试中的人来说是位常客,经常会用到,但是虚拟机重启之后,很多人遇到虚拟机ip变化,很是头痛,我在学习过程中也遇到了这个问题,百度了很多办法,有些办法对于网络知识小白来说 ...

随机推荐

  1. php 魔术方法

    PHP5.0后,php面向对象提成更多方法,使得php更加的强大!! 一些在PHP叫魔术方法的函数,在这里介绍一下:其实在一般的应用中,我们都需要用到他们!! 1.__construct() 当实例化 ...

  2. 几个 JavaScript 奇技淫巧

    #1使用双等号给布尔变量赋值,很容易联想到 var a = b || 123; 的写法 var a = b == 123;#2快速转换为布尔值 !!a#3防止页面被 iframe 调用 if(top ...

  3. 【javascript 变量和作用域】

    今天学习了javascript 的变量和作用域的基本知识,对于以前在开发中遇到的一些不懂的小问题也有了系统的认识,收获还是比较多的. [基本类型和引用类型] ECMAScript 变量可能包含两种不同 ...

  4. Marsonry

    前言 1 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时 ...

  5. C语言面试题(嵌入式开发方向,附答案及点评)

    整理自C语言面试题(嵌入式开发方向,附答案及点评) 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SEC ...

  6. Android 常用权限

    添加WiFi以及访问网络的权限: <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" ...

  7. DataGridView 改变行列颜色

    [一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3227351.html] 1 private void ChangBackColor() { ) ...

  8. 使用php-emoji类让网页显示emoji表情

    需要的材料: php-emoji类库的下载地址:https://github.com/iamcal/php-emoji 代码示例:(该代码来自官网) <?php include('emoji.p ...

  9. POJ_2104_Kth_(主席树)

    描述 http://poj.org/problem?id=2104 给出一个n个数的数列,m次询问,每次询问求区间[l,r]中第k小的数,无修改操作. K-th Number Time Limit: ...

  10. POJ_2229_Sumsets_(动态规划)

    描述 http://poj.org/problem?id=2229 将一个数n分解为2的幂之和共有几种分法? Sumsets Time Limit: 2000MS   Memory Limit: 20 ...