jfinal和freemaker的分页

来源:互联网 发布:linux 查找文件关键字 编辑:程序博客网 时间:2024/05/18 13:10
<#-- 分页控件--><#-- 分页组件的使用 --><#--pageShow 总页数, 当前页, 请求服务地址, 页面大小默认15, 显示最多分页个数, 请求服务地址参数默认为p, 分页样式(可选:gray(默认)、orange、blue)<#import "pub/pageShow.ftl" as page><@page.pageShow pageCount, curPage, "pagePluginTest.do", pageSize, "blue"/>--> <#macro pageShow _totalPageNum _currentPageNo _pageName _pageSize=5 _styleClassName="gray" _maxShowNums=10 _defaultPageParameter="pn" >    <#-- 本段默认起始页 -->    <#local _pageStartNo = 1/>    <#-- 本段默认结束页 -->    <#local _pageEndNo = _maxShowNums />    <#-- 分页的第一页 -->    <#local _firstPageNo = 1 />    <#-- 分页的最后一页 -->    <#local _lastPageNo = _totalPageNum>    <#-- 前一页号码 -->    <#local _prePageNo = _currentPageNo-1 />    <#-- 后一页号码 -->    <#local _nextPageNo = _currentPageNo+1 />         <#if _currentPageNo == _pageStartNo>        <#local _prePageNo = _pageStartNo />    </#if>         <#if _currentPageNo == _lastPageNo>        <#local _nextPageNo = _lastPageNo />    </#if>         <#if _currentPageNo gt _maxShowNums>        <#local _thisPageSegment = ((_currentPageNo-1) / _maxShowNums)?int + 1/>        <#assign _thisPageStartNo = _pageStartNo + (_thisPageSegment-1) * _maxShowNums/>        <#assign _thisPageEndNo = _pageEndNo + (_thisPageSegment-1) * _maxShowNums/>        <#if _thisPageEndNo gt _totalPageNum>            <#assign _thisPageEndNo = _totalPageNum>        </#if>    <#else>        <#assign _thisPageStartNo = _pageStartNo />        <#assign _thisPageEndNo = _pageEndNo />    </#if>         <#-- 构造当前分页栏上面的分页按钮 -->    <#local _pages=[] />    <#if _totalPageNum != 0>        <#list _thisPageStartNo .. _thisPageEndNo as _index>            <#if _currentPageNo == _index >                <#local _pages = _pages + [{"pageNum" : _index ,"url" : _pageName+"&"+_defaultPageParameter+"="+_index , "current" : true}] />            <#else>                <#local _pages = _pages + [{"pageNum" : _index ,"url" : _pageName+"&"+_defaultPageParameter+"="+_index , "current" : false}] />            </#if>            </#list>    </#if>         <#-- 构造分页栏HTML代码 -->    <#local _htmlNoLinkLine>        <a href = "${_pageName}&${_defaultPageParameter}=${_firstPageNo}" target = "_self">首页</a>        <#if _currentPageNo != _pageStartNo>            <a href = "${_pageName}&${_defaultPageParameter}=${_prePageNo}" target = "_self">上一页</a>        </#if>                 <#list _pages as page>            <#if page.current?default(false)>                <span class="current" >${page.pageNum}</span>            <#else>                <a href="${page.url}" mce_href="${page.url}" target="_self">${page.pageNum}</a>            </#if>        </#list>                 <#if _currentPageNo != _lastPageNo>            <a href = "${_pageName}&${_defaultPageParameter}=${_nextPageNo}" target = "_self">下一页</a>        </#if>        <a href = "${_pageName}&${_defaultPageParameter}=${_lastPageNo}" target = "_self">末页</a>        <span>共${_totalPageNum?default(0)}页</span>    </#local>         <!-- 将分页HTML代码放置到页面 -->    <div class="${_styleClassName}">        ${_htmlNoLinkLine}    </div>         <!-- 分页插件CSS -->    <style type="text/css" mce_bogus="1">        <#if _styleClassName == "gray">        <#-- CSS gray style pagination -->        div.gray {            font-size: 12px;            font-family: verdana, arial, helvetica, sans-serif;            padding: 3px;             margin: 3px;             text-align: center;            color:#999999;        }        div.gray a {            border: #E1E2E3 1px solid;             padding: 7px 14px;             margin: 2px;             color: #0000CC;             text-decoration: none;        }        div.gray a:hover {            border: #3388FF 1px solid;             background: #F2F8FF;        }        div.gray a:active {            color: #FF0000;         }        div.gray span.current {            border: transparent 1px solid;             font-weight: bold;             margin: 2px;             padding: 7px 14px;             color: #333333;         }        </#if>        <#if _styleClassName == "orange">        <#-- CSS orange style pagination -->        div.orange {            font-size: 12px;            font-family: verdana, arial, helvetica, sans-serif;            padding: 3px;             margin: 3px;             text-align: center;            color:#999999;        }        div.orange a {            border: #DFDFDF 1px solid;             padding: 7px 14px;             margin: 2px;             color: #3D3D3D;             text-decoration: none;        }        div.orange a:hover {            border: #FE4500 1px solid;             background: transparent;            color:#FE4500;        }        div.orange a:active {            color: #FE4500;         }        div.orange span.current {            border: #FF4400 1px solid;             background: #FF4400;            font-weight: bold;             margin: 2px;             padding: 7px 14px;             color: #FFFFFF;         }        </#if>        <#if _styleClassName == "blue">        <#-- CSS blue style pagination -->        div.blue {            font-size: 12px;            font-family: verdana, arial, helvetica, sans-serif;            padding: 3px;             margin: 3px;             text-align: center;            color:#999999;        }        div.blue a {            border: #E1E2E3 1px solid;             padding: 7px 14px;             margin: 2px;             color: #808080;             text-decoration: none;        }        div.blue a:hover {            border: #389CFF 1px solid;             background: transparent;            color:#389CFF;        }        div.blue a:active {            color: #389CFF;         }        div.blue span.current {            border: #389CFF 1px solid;             background: #389CFF;            font-weight: bold;             margin: 2px;             padding: 7px 14px;             color: #FFFFFF;         }        </#if>    </style></#macro>

上面是pageShow.ftl 文件  这个文件被我进行了些改动 ,

<!--pageShow 总页数, 当前页, 请求服务地址, 页面大小默认15, 显示最多分页个数, 请求服务地址参数默认为p, 分页样式(可选:gray(默认)、orange、blue)-->        <ul class="fenye">        <#import "pageShow.ftl" as page>        <@page.pageShow totalPage, p, "list?ndid="+ndidVal, size, "gray" ,maxPage/><br/></ul>

controller

//list 文章列表页public void list(){int ndid=this.getParaToInt("ndid");//二级栏目 idQtSecondmenu nd=QtSecondmenu.dao.findById(ndid);//查出二级信息int stid = nd.getInt("st_id");List<QtSecondmenu> ndlist=QtSecondmenu.dao.find("select * from qt_secondmenu where st_id=? ",stid);List<QtIndexlink> indexlink=QtIndexlink.dao.find("select * from qt_indexlink ");//导航int pageNum=this.getParaToInt("pn");System.out.println(pageNum);int pageSize=10;Page<QtArticle> page =QtArticle.dao.queryWebArticle(pageNum,pageSize,ndid);this.setAttr("p", page.getPageNumber());//当前页this.setAttr("size", page.getPageSize());//当前页个数this.setAttr("ndidVal", ndid);//当前页个数this.setAttr("totalPage",page.getTotalPage());//总页数 if(page.getTotalPage() < 10){this.setAttr("maxPage",page.getTotalPage());//最多显示的页数6(1,2,3,4,5,6)}else{this.setAttr("maxPage",10);//最多显示的页数}this.setAttr("arlist", page.getList());//文章信息this.setAttr("ndlist", ndlist);//查出同类型的 二级栏this.setAttr("seleVal", ndid);//把ndid 传到前台,前台判断是否有选中样式this.setAttr("indexlink", indexlink);//导航this.renderFreeMarker("list.html");}

model

//pageNumber,pageSize, 页数 一个几个public Page<QtArticle> queryWebArticle(int pageNum, int pageSize, int ndid) {// TODO Auto-generated method stubtry{String select = "select *   ";String sqlExceptSelect = " from qt_article where nd_id="+ndid+" ";return dao.paginate(pageNum, pageSize, select, sqlExceptSelect);}catch(Exception ex){ex.printStackTrace();return null;}}















原创粉丝点击