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;}}
阅读全文
0 0
- jfinal和freemaker的分页
- jfinal的分页
- DWZ+jFinal结合写出的分页!
- JFinal+bootstrap开发,使用datatables的分页
- freemaker 自定义标签 和函数的使用
- JSP、FreeMaker和Velocity之间的区别
- JFinal的Interceptor和Handler
- JFinal分页paginate
- JFinal分页总结
- 6.Jfinal分页实例
- freemaker 简单分页(原)
- freemaker中css2分页css
- jfinal框架下使用freemaker生成excel报表实践
- Jfinal学习和环境的搭建
- 关于jsp servlet和jfinal的基础知识
- 使用Freemaker的示例(和servlet的搭配使用)
- 用FreeMaker和模板生成文件的方法
- freemaker html页面获取map的key和value
- spark学习笔记之三:调度流程剖析
- Android的应用(APP)启动详细流程
- PHP中数据导出csv
- JAVA实现SFTP的实例 转自http://www.xfok.net/2009/10/124485.html
- 对象成员的引用
- jfinal和freemaker的分页
- Log4J 配置文件
- IIS出现Server Error in ''/'' Application 的错误,解决方案
- PLSQL登录时怎么输入数据库地址
- dom4j操作xml
- 【HDU 6047 Maximum Sequence】 + 优先队列
- 关于禁用bootstrap响应式
- ZooKeeper程序员指南(转)
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)