<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>条记录,当前显示第&nbsp;<i class="blue">${value.pageNo}/${value.totalPage}</i>&nbsp;页&nbsp;每页显示&nbsp;<input name="${pageSizeName!}" value="<#if pageSizeValue?? && pageSizeValue?has_content>${pageSizeValue!}<#else>${pageSize!20}</#if>" style="width:35px;" onchange="${checkFieldFunction}(this.value)">&nbsp;条</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分页模板的更多相关文章

  1. 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】

    分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...

  2. Oracle数据库的SQL分页模板

    在系统开发过程中,需要对数据进行查询,大部分情况下从数据库中查询的数据量比较大,在系统页面无法全部显示,而且查询全部的数据会影响系统的反应速度,需要对所查询的数据进行分页的查询操作,以此减轻系统的压力 ...

  3. velocity分页模板

    以前用后台java拼接分页代码,不利于修改.找到一份velocity模板. <!-- 分页模板 --> #macro(pager $url $pager) <url class=&q ...

  4. smarty分页模板(用模板语法写分页)

    分页是一个我们经常要用到的.比较基本的小功能,你可以通过定义一个方法或类来对它进行封装.重用.而本文则是通过利用smarty独有的语法,以模版的方式进行封装,从而达到同样的目的. 下面开始具体实现步骤 ...

  5. 动动手,写个knockout的分页模板

    最近一个项目用ASP.NET + knockout开发,很多列表页面都带分页,于是就有了写一个公共的分页模板的想法. 先把template写好: <script type="text/ ...

  6. SQL Server分页模板

    SQL Server分页模板 WITH T AS ( SELECT ROW_NUMBER() OVER(ORDER BY AlbumId ) AS row_number, * FROM (SELECT ...

  7. freemaker分页备忘

    思路:定义一个freemaker宏,接收参数.然后在freemaker页面上import这个文件,把参数传进来在server端渲染. 分页标签:pager.ftl <#-- 自定义的分页指令. ...

  8. ThinkPHP自定义分页模板

    TpPageHelper.php <?php namespace tool; use think\Paginator; class TpPageHelper extends Paginator ...

  9. js分页模板

    /** *参数说明: *currentPage:当前页数 *countPage:总页数 *changeMethod:执行java后台代码的js函数,即是改变分页数据的js函数 */ function  ...

随机推荐

  1. 几个不常见但非常出色的 .NET 开源库

    NLog NLog 目前最为出色的 .NET 日志库,非常容易配置,且极具灵活性.最重要的是与 log4net 相比,NLog 的开发很活跃.顺带提一句,NLog 完全兼容 Mono. Mono.Ce ...

  2. 【弱省胡策】Round #5 Handle 解题报告

    这个题是我出的 sb 题. 首先,我们可以得到: $$A_i = \sum_{j=i}^{n}{j\choose i}(-1)^{i+j}B_j$$ 我们先假设是对的,然后我们把这个关系带进来,有: ...

  3. mybatis UpdateByExampleMapper UpdateByExampleSelectiveMapper

    /** * 通用Mapper接口,Example查询 * * @param <T> 不能为空 * @author liuzh */ public interface UpdateByExa ...

  4. Form – 保存自動關閉當前窗口

    FAQ: 在BUTTON的触发器中,写如下代码, commit_form; go_bloack('你想显示的那个window的block'); --或者写 show_view('你要显示的canvas ...

  5. Cookie的前后台应用

    1.jquery.cookie.js的基本应用 这个是第三方js插件,可以更方便的设置和使用cookie $.cookie("UserName", "kingtiger& ...

  6. BASE64编码规则及C#实现

    一.编码规则      Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24位数据,再把这24位数据分成4组 ...

  7. Nagios‘process_cgivars()’函数差一错误拒绝服务漏洞

    漏洞名称: Nagios‘process_cgivars()’函数差一错误拒绝服务漏洞 CNNVD编号: CNNVD-201312-495 发布时间: 2013-12-27 更新时间: 2013-12 ...

  8. GML、SVG、VML的比较

    转自:http://www.cnblogs.com/3echo/archive/2009/02/19/1394399.html GML.SVG和VML都是基于XML的可用来描述矢量图形的标记语言,都是 ...

  9. NET中的引用类型和值类型 zt

    .NET中的类型分为值类型和引用类型,他们在内存布局,分配,相等性,赋值,存储以及一些其他的特性上有很多不同,这些不同将会直接影响到我们应用程序 的效率.本文视图对.NET 基础类型中的值类型和引用类 ...

  10. HDU 1061

    #include<stdio.h> #include<string.h> int a[10]; int main() { int T,n,i,k,temp,b,t; scanf ...