复杂的分页查询

步骤一:

分页的html

    共
    <span id="totalReasord"> <s:property value="mes.totalReasord" /></span>条记录&nbsp;
    每页
    <input id="perSize" type="text" name="mes.perSize"
        value="<s:property value= "mes.perSize"/>" />条&nbsp; 第
    <span id="currentPage"><s:property value="mes.currentPage" /></span>页&nbsp;/共
    <span id="totalPage"><s:property value="mes.totalPage" /></span>页
    <input type="text" style="display: none;" name="mes.totalPage"
        value="<s:property value="mes.totalPage" />" />&nbsp;
    <a href="javascript:aSubmit('-2')">首页</a>&nbsp;
    <a href="javascript:aSubmit('-1')">上一页</a>&nbsp;
    <a href="javascript:aSubmit('1')">下一页</a>&nbsp;
    <a href="javascript:aSubmit('2')">最后页</a>&nbsp;&nbsp;转到第
    <input type="text" id="pageIndex" name="mes.pageIndex"
        value="<s:property value= "mes.pageIndex"/>" />页&nbsp;
    <input type="submit" value="Go" />
    <input style="display: none;" type="text" id="subId" name="mes.subId"
        value="0" />

 


步骤二:

创建一个模版类

public class MesTemplate {
    private int totalReasord;  //总记录数
    private int perSize; //每页多少条
    private int  currentPage; //当前是第几条
    private int  totalPage;
    private int pageIndex;
    private int subId;
    private List<CstLost> cstLosts=new ArrayList<CstLost>();  //显示的信息数据


//get set访问起省。。


步骤三:

写js 主要是控制操作是否合法, 如

1:转到第几页提交前检查是否比总页数小? 

2:点击上一页,下一页,首页,末页时页数是否符合要求可以 去查,有数据?否则就不去查,只给友好的提示


function aSubmit(num){
            var currentPage=$("#currentPage").text();
            var totalPage=$("#totalPage").text();
            if(totalPage<=1){
                alert("错误提示:只有一页");
                return;
            }
            if(currentPage==totalPage){
                if(num=="1"||num=="2"){ alert("错误提示:已经是最后一页了"); return ;}
            }else if(currentPage=="1"){
                if(num=="-1"||num=="-2"){alert("错误提示:已经是首页了"); return;}
            }
        $("#subId").val(num);
        document.forms[1].action= "getAllLostByPage";
        document.forms[1].submit();
        }
        
        function sub(){
            var totalReasord=$("#totalReasord").text();
            var perSize=$("#perSize").val();
            var re=totalReasord%perSize==0?totalReasord/perSize:totalReasord/perSize+1;
            var pageIndex=$("#pageIndex").val();
            if(perSize<=0){alert("错误提示:每页的数量不能小于1");return false;}
            if(pageIndex<1||pageIndex>re){
                alert("错误提示:该信息不存在");
                return false;}
            document.forms[1].submit();
        }


运行结果1:


运行结果2:




步骤四:

分页的方法

    public MesTemplate getLostsInfo(MesTemplate mes){
        if (mes == null){
            mes = new MesTemplate(); // 初次加载
            mes.setPageIndex(1);
            mes.setPerSize(2);
        }
        Criteria criteria = getSession().createCriteria(CstLost.class);
        switch (mes.getSubId()) {
        case -2:  //点击首页
            mes.setPageIndex(1);
            break;
        case -1: //点击的是上一页
            mes.setPageIndex(mes.getPageIndex() - 1);
            break;
        case 1:  //点击是下一页
            mes.setPageIndex(mes.getPageIndex() + 1);
            break;
        case 2:  //点击的是末页
            mes.setPageIndex(mes.getTotalPage());
            break;
        }
        mes.setCurrentPage(mes.getPageIndex());

        int totalResord = criteria.list().size();
        int totalSize = totalResord % mes.getPerSize() == 0 ? totalResord
                / mes.getPerSize() : totalResord / mes.getPerSize() + 1;
        mes.setTotalReasord(totalResord);
        mes.setTotalPage(totalSize);

        criteria.setFirstResult((mes.getPageIndex() - 1) * mes.getPerSize());
        criteria.setMaxResults(mes.getPerSize());
        mes.setCstLosts(criteria.list());
        return mes;
        
    }


 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源14

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值