11_01_25VTL模板使用要点

原创 2011年01月25日 13:15:00

1、实现分页功能

##//当前导航(此处为一级导航,假设为:教育动态)
#set($currentNav = ${root.getNavigations()})
#set($nsv = $currentNav.get($root.decrease($currentNav.size())))

##//循环一级菜单下的二级菜单
#foreach($child in ${root.db.listNavigations(${nsv.topicName},${nsv.name})})
<li><a href="$child.url">$child.name</a></li>
#end

##//热点新闻
##设置为空,则返回所有新闻的热点新闻。
#set($strztrd="")  
#set($zhtrdstwo = $root.getDb().listByHotClicks(${nsv.topicName},$strztrd,11))
#foreach($ztrdt in $zhtrdstwo)
<li><img src="public/pgjyw/images/news/list4.jpg" /><a href="${ztrdt.url}">${ztrdt.title}</a></li>
#end

##//最新新闻
##为空,为所有新闻最新的信息。
#set($zxstr="")  
#set($zxddts = $root.getDb().listByNavigation(${nsv.topicName},$zxstr,11))
#foreach($zxt in $zxddts)
<li><img src="public/pgjyw/images/news/list4.jpg" /><a href="$zxt.url">$zxt.title</a></li>
#end

##//招考信息
##获取招考信息
#set($zhshxx=$shyoneChild.get(5).name)

##说明:获取二级菜单字符串。
#set($twoChild=${root.db.listNavigations(${shycurNav.topicName},${zhshxx})})
#set($ns = $root.decrease($twoChild.size()))##减一位
#set($navName='')
#foreach($i in [0..$ns])
    #set($navName = $navName +',' + ${twoChild.get(${i}).name})
#end
#set($navName = $zhshxx + $navName)

##说明:循环新闻标题。
#set($llsit = $root.getDb().listByNavigation(${shycurNav.topicName},$navName,10))

<div class="new3">        
    <div style="height:278px;">
        <div class="new-title1">
            <div class="nt">${zhshxx}</div>
            <div class="more"><a href="/zkxx">more…</a></div>
        </div>
        <ul class="new-list">
            #foreach($n in $llsit)
            <li class="nle-title">
                  <img src="public/pgjyw/images/news/list1.jpg" />
                  <a href="${n.url}">${n.title}</a>
            </li>
            #end
        </ul>
菜单:$navName
     </div>
     <div class="new-title2" ></div>
</div>


##//组装二级导航成字符串
#set($sl = ${root.db.listNavigations(${nsv.topicName},${nsv.name})})    ##说明:得到二级导航sl数组。
#set($ns = $root.decrease($sl.size()))##得到最后一个值的下标。
#set($navName='')
#foreach($i in [$ns..0])
#set($navName = $navName + ${sl.get(${i}).name} + ',')
#end
#set($navName = $navName + ${nsv.name})

##///分页功能
#**
* 显示列表内容 定义为宏
*#
#macro(lato $aList)
 <ul>
  #foreach($article in $aList)
    <li class="nle-title"><img src="public/pgjyw/images/news/list1.jpg" /><a href="${article.url}" target="">${article.title}</a></li>
    <li class="nle-time"><div>${article.createdAt}</div></li>
  #end
  </ul>
#end

#**
* 文章列表
* @param topicName 导航
* @param navigation 导航
* @param pageCount 限制条数
*#
#macro(ptb1 $url $topicName $navigation $count)
        #if(!$count)
             #set($count=2)        ##设置$count
        #end 
        #if(${root.params.limit})            
             #set($pageCount = $root.params.getInt("limit")) ##设置$pageCount
        #end   
        #if(!$pageCount)   
            $root.getParams().set("limit",${count.toString()})
            #set($pageCount=$count)
         #end         
        #set($page=${root.db.listByNavigation($topicName,$navigation)})

        #**总页数*#
        #set($totalPages=$page.totalCount/$page.limit)   
        #if($page.totalCount%$page.limit>0)
            #set($totalPages=$totalPages+1)
        #end

    #**当前页*#
    #set($currentPage=$page.start/$page.limit+1)
    #**上一页*#
    #set($lastCount= $page.start - $pageCount)
    #**下一页*#
    #set($nextCount= $page.start + $pageCount)
        #**最后一页*#
        #set($endCount= ($totalPages - 1) * $pageCount)
     
    #**当前显示开始*#
    #set($showBign = $page.start+1)
    #**当前显示结束*#
    #set($showEnd = $page.start + $pageCount)
    #if($showEnd > $page.totalCount)
        #set($showEnd = $page.totalCount)
    #end
        #**是否第一页*#
        #set($isFirstPage=$page.start==0)
        #**是否最后一页*#
        #set($isLastPage=$showEnd==$page.totalCount)
   
    <div class="new-list-e">
        #lato($page.result)
        <div style="clear:both;"></div>
    </div>
    <div class="fy">
        #if(${totalPages}>1)
            当前显示${showBign}-${showEnd}&nbsp;总${page.totalCount}条&nbsp;
                #if(!$isFirstPage)
                    <a href="${url}?start=0&limit=$pageCount">
                #end
                    <img width="13" height="14" src="public/pgjyw/images/news/fy_first.jpg" />
                #if(!$isFirstPage)
                    </a>
                #end &nbsp;
                #if(!$isFirstPage)
                    <a href="${url}?start=${lastCount}&limit=$pageCount">
                #end
                    <img width="11" height="14" src="public/pgjyw/images/news/fy_before.jpg" />
                #if(!$isFirstPage)
                                        </a>
                #end &nbsp;
            第<input type="text" class="now-page" name="page" size="8" value="${currentPage}" />页&nbsp;
            共&nbsp;<label>${totalPages}</label>&nbsp;页&nbsp;
                #if(!$isLastPage)
                    <a href="${url}?start=${nextCount}&limit=$pageCount">
                #end
                    <img width="11" height="14" src="public/pgjyw/images/news/fy_next.jpg" />
                #if(!$isLastPage)
                    </a>
                #end &nbsp;
                #if(!$isLastPage)
                    <a href="${url}?start=${endCount}&limit=$pageCount">
                #end
                    <img width="13" height="14" src="public/pgjyw/images/news/fy_last.jpg" />
                #if(!$isLastPage)
                    </a>
                #end
        #end
    </div>
        #**-------当前页:${currentPage},总页数:${totalPages},开始页:${page.start},每页条数:${pageCount}   *#
#end

相关文章推荐

vtl模板语言

VTL使用references来在web site内嵌套动态内容,一个变量就是一种类型的reference。变量是某种类型的refreence,它可以指向java代码中的定义,或者从当前页面内定义的V...

Velocity模板语言(VTL):说明

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

黑马程序员--Java基础加强--11.【MyEclipse使用快捷键提取方法的要点】【个人总结】

MyEclipse提取方法----- MyEclipse使用快捷键提取方法的要点 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------...

Apache Hadoop 3.0.0-beta1 正式发布,2017-11-01发布GA版即可在线上使用

下面内容如有不清晰请参见https://www.iteblog.com/archives/2270.html,或点击下面阅读原文即可 就在前几天,Apache Hadoop 3.0.0-beta1 ...

C++标准模板库(STL)使用 01

或许你已经把 C++ 作为主要的编程语言用来解决 TopCoder 上的问题。这意味着你已经简单使用过了 STL,因为数组和字符串都是作为 STL 对象传递给函数。也许你已经注意到了,很多程序员写代码...
  • Bcwan_
  • Bcwan_
  • 2016年08月20日 02:41
  • 713

01.Django学习之安装,建立项目,传参,MySQL数据库,静态文件配置和模板的使用

1:安装 pip install Django==1.8.6 2:建立项目  进入某个目录执行 django-admin.py startproject myweb(此为项目目录)  建立子...

软件使用,svn 安装错误2503,16/11/19 01

在win10中安装svn的时候,因为权限问题导致 安装失败,错误码为2503,网上查了很多种方法,有在dos窗口下使用msiexec /package "安装文件的全路径",还有改变策略组的一些设置,...

CoreAnimation-01-CALayer核心要点及实例解析

CALayer基础 CALayer是每一个UI控件的核心,一个UI控件之所以能显示可以说是CALayer的功劳 每一个UI控件默认都为自己创建一个CALayer对象,通过drawRect方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:11_01_25VTL模板使用要点
举报原因:
原因补充:

(最多只允许输入30个字)