freemaker分页模板
<link href="${base}/res/pra/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="${base}/res/basic/js/jquery/jqPaginator.min.js"></script>
<#--
表格标签:用于显示列表数据。
value:列表数据,可以是Pagination也可以是List。
class:table的class样式。默认"pn-ltable"。
sytle:table的style样式。默认""。
width:表格的宽度。默认100%。
-->
<#macro table value listAction="v_list.do" class="tablelist" style="" theadClass="" tbodyClass="" width="" selfPage="" pageId="pagination" pageNoName="pageNo" pageSizeName="pageSize" pageSizeValue="" gotoPageFunction="_gotoPage" checkFieldFunction="checkField">
<table class="${class}" <#if style?has_content>style="${style}"</#if> <#if width?has_content>width="${width}"</#if>>
<#if value?is_sequence><#local pageList=value/><#else><#local pageList=value.list/></#if>
<#list pageList as row>
<#if row_index==0>
<#assign i=-1/>
<thead <#if theadClass?has_content>class="${theadClass}"</#if>><tr><#nested row,i,true/></tr></thead>
</#if>
<#assign i=row_index has_next=row_has_next/>
<#if row_index==0><tbody <#if tbodyClass?has_content>class="${tbodyClass}"</#if>><tr><#else><tr></#if><#nested row,row_index,row_has_next/>
<#if !row_has_next>
</tr></tbody>
<#else>
</tr>
</#if>
</#list>
</table>
<#if !value?is_sequence>
<div class="pagin" id="pagin">
<div class="message">共<i class="blue">${value.totalCount}</i>条记录,当前显示第 <i class="blue">${value.pageNo}/${value.totalPage}</i> 页 每页显示 <input name="${pageSizeName!}" value="<#if pageSizeValue?? && pageSizeValue?has_content>${pageSizeValue!}<#else>${pageSize!20}</#if>" style="width:35px;" onchange="${checkFieldFunction}(this.value)"> 条</div>
<ul class="paginList" id="${pageId}"></ul>
</div>
<script type="text/javascript">
$.jqPaginator('#${pageId}', {
totalPages: ${value.totalPage},
visiblePages: 10,
currentPage: ${value.pageNo},
activeClass: 'current',
prev: '<li class="paginItem"><a href="javascript:;"><span class="pagepre"></span></a></li>',
next: '<li class="paginItem"><a href="javascript:;"><span class="pagenxt"></span></a></li>',
page: '<li class="paginItem"><a href="javascript:;">{{page}}</a></li>',
onPageChange: function (num, type) {
if(type!='init')
<#if selfPage?? && selfPage!="">${selfPage}(num)<#else>${gotoPageFunction}(num)</#if>;
}
});
function ${gotoPageFunction}(pageNo) {
try{
var tableForm = getTableForm();
$("input[name='${pageNoName}']").val(pageNo);
tableForm.action="${listAction}";
tableForm.onsubmit=null;
tableForm.submit();
} catch(e) {
alert('_gotoPage('+pageNo+')方法出错');
}
}
function ${checkFieldFunction}(val)
{
var tableForm = getTableForm();
$("input[name='${pageSizeName}']").val(val);
tableForm.action="${listAction}";
tableForm.onsubmit=null;
tableForm.submit();
}
</script>
</#if>
<script type="text/javascript">
$('.tablelist tbody tr:odd').addClass('odd');
</script>
</#macro>
<form id="tableForm" method="post">
<@e.hidden name="pageNo" value="${pageNo!}"/>
<@e.hidden name="name" value="${name!}"/>
<@e.hidden name="lesson" value="${lesson!}"/>
<@e.hidden name="teacher" value="${teacher!}"/>
<@e.hidden name="type" value="${type!}"/>
<@e.table class="tablelist" listAction="courseList.jspx" value=page;m,i,has_next>
<#if (i >= 0)>
<div class="course">
<div class="img">
<img src="${base}${(m.ctcdPicture)!}" alt="" />
</div>
<div class="contra">
<div class="w-position">
<p class="left">${(m.ctcdName)!}</p>
<p class="right">价格:¥${(m.price)!}</p>
</div>
<div class="dan-xian"></div>
<div class="text-frame">
<div class="text">
视频课程:<span class="blue">${(m.ctcdLesson)!}</span>课时
</div>
<div class="text">
模拟试卷:<span class="blue">${(m.ctcdImitatePaper)!}</span>套
</div>
<div class="text">课程简介:${(m.ctcdSummary)!}</div>
</div>
<div class="btn">
<a href="course_listen.html"><div class="bg st"></div>
</a> <a href=""><div class="bg ckxq"></div>
</a>
</div>
</div>
</div>
</#if>
</@e.table>
</form>
后台代码:
public String courseList(HttpServletRequest request,Integer pageNo, Integer pageSize, ModelMap model) {
CmCheckCycleDef cycleDef = scService.get().getCcdId();
Pagination page = ctcdService.getPage(null, cycleDef.getCcdId(), "",
"", cpn(pageNo), pageSize == null ? CookieUtils.getPageSize(request) : pageSize);
model.addAttribute("page", page);
System.out.println(page.getList().size());
model.addAttribute("linkList", this.getFriendLink());
model.addAttribute("pageNo", pageNo);
model.addAttribute("pageSize", pageSize);
return FrontUtils.getTplPathUrl(FrontUtils.SOLUTION, "",
"course_list");
}
freemaker分页模板的更多相关文章
- 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】
分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...
- Oracle数据库的SQL分页模板
在系统开发过程中,需要对数据进行查询,大部分情况下从数据库中查询的数据量比较大,在系统页面无法全部显示,而且查询全部的数据会影响系统的反应速度,需要对所查询的数据进行分页的查询操作,以此减轻系统的压力 ...
- velocity分页模板
以前用后台java拼接分页代码,不利于修改.找到一份velocity模板. <!-- 分页模板 --> #macro(pager $url $pager) <url class=&q ...
- smarty分页模板(用模板语法写分页)
分页是一个我们经常要用到的.比较基本的小功能,你可以通过定义一个方法或类来对它进行封装.重用.而本文则是通过利用smarty独有的语法,以模版的方式进行封装,从而达到同样的目的. 下面开始具体实现步骤 ...
- 动动手,写个knockout的分页模板
最近一个项目用ASP.NET + knockout开发,很多列表页面都带分页,于是就有了写一个公共的分页模板的想法. 先把template写好: <script type="text/ ...
- SQL Server分页模板
SQL Server分页模板 WITH T AS ( SELECT ROW_NUMBER() OVER(ORDER BY AlbumId ) AS row_number, * FROM (SELECT ...
- freemaker分页备忘
思路:定义一个freemaker宏,接收参数.然后在freemaker页面上import这个文件,把参数传进来在server端渲染. 分页标签:pager.ftl <#-- 自定义的分页指令. ...
- ThinkPHP自定义分页模板
TpPageHelper.php <?php namespace tool; use think\Paginator; class TpPageHelper extends Paginator ...
- js分页模板
/** *参数说明: *currentPage:当前页数 *countPage:总页数 *changeMethod:执行java后台代码的js函数,即是改变分页数据的js函数 */ function ...
随机推荐
- C# - 非中断(正常)模式下的调试
一般我们用Console.WriteLine()函数,将文本输出到控制台上来跟踪代码进行到了什么位置,局限性很大,适用范围窄. 1. 输出调试信息 命名空间 System.Dignostics Deb ...
- hdu 1255 覆盖的面积 (线段树处理面积覆盖问题(模板))
http://acm.hdu.edu.cn/showproblem.php?pid=1255 覆盖的面积 Time Limit: 10000/5000 MS (Java/Others) Memo ...
- Python属性、方法和类管理系列之----描述符类
什么是描述符类? 根据鸭子模型理论,只要具有__get__方法的类就是描述符类. 如果一个类中具有__get__和__set__两个方法,那么就是数据描述符,. 如果一个类中只有__get__方法,那 ...
- ExtJS4.2学习(14)基于表格的扩展插件(2)(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-26/184.html --------------- ...
- PHP漏洞全解(九)-文件上传漏洞
本文主要介绍针对PHP网站文件上传漏洞.由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 P ...
- UVA 10273 Eat or Not to Eat?
这个题目一直以为是要用图论知识来做,可是一点建图的思绪都没有,后来知道暴力便可破之.由于牛的产奶周期最大为10,1.2.3.....10的最小公倍数是MT = 2520,所以把MT作为最大的周期,然后 ...
- Spring AOP实现方式三之自动扫描注入【附源码】
注解AOP实现 这里唯一不同的就是application 里面 不需要配置每个bean都需要配置了,直接自动扫描 注册,主要知识点是怎么通过配置文件得到bean, 注意类前面的@注解. 源码结构: ...
- 查找Form的文件名
我们经常会要在ORACLE EBS中寻找我们正在浏览的form页面的执行文件,我们都会直接在Help中的菜单里点击"About Oracle Application",然后查看当前 ...
- 结构体dtype_t
/* SQL data type struct */ typedef struct dtype_struct dtype_t; struct dtype_struct{ unsigned mtype: ...
- C#中IDisposable学习
在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机.对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收.那么什么时候使用Id ...