博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
displaytag 分页-添加页码输入框跳转至指定页
阅读量:5011 次
发布时间:2019-06-12

本文共 3401 字,大约阅读时间需要 11 分钟。

环境前提:工程引用displaytag-1.2.jar 使用displaytag自动生成的分页

修改分页步骤

1.修改配置文件displaytag.properties

原配置文件:displaytag-1.2.jar --> org.displaytag.properties --> displaytag.properties

新建配置文件displaytag.properties放在/WEB-INF/classes目录下,新配置文件中相同key的值将会覆盖原配置文件中的值

在新配置文件中修改原配置文件中paging.banner.full paging.banner.first paging.banner.last的值

paging.banner.full paging.banner.first添加(输入框和跳转)代码:

\u7b2c<input id="gotoPageNumber_displaytag">\u9875 <a οnclick="gotoPage_displaytag(0)">GO</a><input type="hidden" id="lastPageUrl_displaytag" value="{4}"/>

paging.banner.last添加(输入框和跳转)代码:

\u7b2c<input id="gotoPageNumber_displaytag">\u9875 <a οnclick="gotoPage_displaytag(1)">GO</a><input type="hidden" id="prevPageUrl_displaytag" value="{2}"/>

备注:

displaytag.properties中汉字存储的是Unicode码 \u7b2c为第 \u9875为页

{4}最后解析为尾页a标签的href值,即跳转到尾页的链接

{2}最后解析为上一页a标签的href值,即跳转到上一页的链接

paging.banner.full paging.banner.first用尾页的链接,目的是获取总页数

paging.banner.last用上一页的链接,是因为尾页此时没有链接,通过上一页获取总页数(上一页的页数+1即为总页数)

修改完成配置文件后需要重新启动服务

 

如果只有一个jsp页面需要修改为有跳转功能的分页可以直接在jsp页面修改配置文件的值

<display:setProperty name="paging.banner.full" value='<span class="pagelinks">...添加代码在此处,和上一样...</span>' />

<display:setProperty name="paging.banner.first" value='<span class="pagelinks">...添加代码在此处,和上一样...</span>' />

<display:setProperty name="paging.banner.last" value='<span class="pagelinks">...添加代码在此处,和上一样...</span>' />

 

2.添加跳转事件(gotoPage_displaytag())

可以单独新建js文件在jsp页面进行引用 也可以直接将js方法添加到jsp页面已经引用的共通js文件中

function gotoPage_displaytag(pageFlag) {    // 跳转到第多少页只能输入正整数 正整数正则表达式    var T = /^[1-9]\d*$/;    // 获取输入的值 用JS方法获取 以防页面没有引用JQUERY    var pageNum = document.getElementById("gotoPageNumber_displaytag").value;    // 对输入的页数进行校验 如果输入的页数不是正整数 什么也不做    if (!T.test(pageNum)) {        return;    }    // 获取页面跳转URL pageFlag=0时获取的是尾页的URL pageFlag=1时获取的是上一页的URL    var url = null;    if (pageFlag == 0) {        // paging.banner.full        // paging.banner.first        // 获取的是尾页的URL        url = document.getElementById("lastPageUrl_displaytag").value;    } else {        // pageFlag == 1        // paging.banner.last        // 获取的是上一页的URL        url = document.getElementById("prevPageUrl_displaytag").value;    }    // 获取总页数    // d-16544-p是displaytag-1.2.jar通过row生成记录页码的key     // java代码中通过new ParamEncoder("row").encodeParameterName(TableTagParameters.PARAMETER_PAGE)获取该key    // 进一步通过request.getParameter(key)获取指定跳转到的页数    var urlArray = url.split("d-16544-p=");    var urlLastPart = urlArray[1];    // url中用&分开各个参数传值    var index = urlLastPart.indexOf("&");    var totalPageNum = null;    if (index < 0) {        // d-16544-p是最后一个参数 urlLastPart即为页数        totalPageNum = urlLastPart;        // 删除第二部分参数字符串中页数的值 下将设置为即将跳转的页数        urlLastPart = "";    } else {        // d-16544-p不最后一个参数 从urlLastPart中获取页数        totalPageNum = urlLastPart.substr(0, index);        // 删除第二部分参数字符串中页数的值 下将设置为即将跳转的页数        urlLastPart = urlLastPart.substr(index);    }    if (pageFlag == 1) {        // 总页数 = 上一页页数 + 1        totalPageNum = parseInt(totalPageNum) + 1;    }    // 判断输入页数是否超过总页数 如果没有超过总页数替换页数为输入页 超过总页数按最大页查询    // 设置新的url    // 第一部分参数    url = urlArray[0] + 'd-16544-p=';    // 跳转的页数    if (parseInt(pageNum) < parseInt(totalPageNum)) {        url += pageNum;    } else {        url += totalPageNum;    }    // 第二部分参数    url += urlLastPart;    // 跳转到指定页数    window.location = url;}

 displaytag官方网站(http://displaytag.sourceforge.net)

转载于:https://www.cnblogs.com/pumushan/p/5673024.html

你可能感兴趣的文章
获取NVIDIA显卡的温度
查看>>
Dijkstra算法
查看>>
Deep Learning 9: Performance
查看>>
面试题61 把二叉树打印成多行
查看>>
C#例子 易懂故事 接口 委托 事件 异步通知 好玩.
查看>>
[转]Windows Shell 编程 第十一章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987992】...
查看>>
修改presto新版源码让他支持redash数据库
查看>>
Javascript的书写位置
查看>>
树-线索二叉树
查看>>
JAVA遇见HTML——Servlet篇:Servlet基础
查看>>
第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除...
查看>>
Java单例模式
查看>>
重温WCF之消息契约(MessageContract)(六)
查看>>
Excel2007制作直方图和正态分布曲线图
查看>>
android adb常用指令
查看>>
Android框架之路——GreenDao3.2.2的使用
查看>>
类方法WCF学习笔记-KnowTypeAttribute用法
查看>>
平台程序微信平台开发应用的签名
查看>>
程序卡OK6410裸板更新程序_update
查看>>
MYSQL用户名:root
查看>>