分页输入框跳转 java_displaytag 分页-添加页码输入框跳转至指定页

本文介绍了如何在使用displaytag-1.2.jar进行分页时,添加页码输入框实现跳转至指定页的功能。主要步骤包括修改配置文件displaytag.properties,添加跳转事件gotoPage_displaytag()。在配置文件中,通过修改paging.banner.full和paging.banner.first的值来添加输入框和跳转按钮。同时,提供了一个JavaScript函数,用于处理输入的页码并根据当前页码和URL跳转到指定页。
摘要由CSDN通过智能技术生成

环境前提:工程引用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\u9875 GO

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

\u7b2c\u9875 GO

备注:

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

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

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

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

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

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

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

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

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

functiongotoPage_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)

url+=pageNum;

}else{

url+=totalPageNum;

}//第二部分参数

url +=urlLastPart;//跳转到指定页数

window.location =url;

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值