zoukankan      html  css  js  c++  java
  • displaytag 分页-添加页码输入框跳转至指定页

    环境前提:工程引用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 onclick="gotoPage_displaytag(0)">GO</a><input type="hidden" id="lastPageUrl_displaytag" value="{4}"/>

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

    u7b2c<input id="gotoPageNumber_displaytag">u9875 <a onclick="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)

  • 相关阅读:
    美团DSP
    pid稳态控制
    Tensorflow的gRPC编程(一)
    信息增益,信息增益率
    tensorflow dnn 参考
    java tfserving grpc 通信调用代码解析 【重点参考】
    Saltstack module dnsmasq 详解
    Saltstack module django 详解
    Saltstack module disk 详解
    Saltstack module dig 详解
  • 原文地址:https://www.cnblogs.com/pumushan/p/5673024.html
Copyright © 2011-2022 走看看