velocity页面分页

#macro(pageNavigation $pageInfo $formName )
#if($pageInfo)
        <div class="pagenumber">
    共有$!pageInfo.totalItem个记录&nbsp;
## 设置页码宽度,一边pageWidth个
#set($pageWidth = 5)
## 判断是否有上一页,当前页数大于1才有
    #if($pageInfo.currentPage > 1)
    #set($previousPage=${pageInfo.currentPage} - 1)
    <a href="javascript:gotoPage('$formName', $previousPage);"> &lt 上一页 </a>
    #else
    <span class="disabled">  上一页 </span>
#end
##计算向左快速翻页
    #if($pageInfo.currentPage > $pageWidth + 1)
#set($quickLeftPage = $pageInfo.currentPage - $pageWidth - 1)
        <a href="javascript:gotoPage('$formName', $quickLeftPage);">...</a>
        #end
## 计算最左边的页码
#if($pageInfo.currentPage > $pageWidth)
#set ($leftPage=$pageInfo.currentPage - $pageWidth)
#else
#set ($leftPage = 1)
#end
## 计算最右边的页码
#if($pageInfo.currentPage + $pageWidth > $pageInfo.totalPage)
#set ($rightPage=$pageInfo.totalPage)
#else
#set ($rightPage = $pageInfo.currentPage + $pageWidth)
#end
#if($rightPage < 1)
#set ($rightPage = 1)
#end
## 显示页码
#foreach( $pageIndex in [$leftPage..$rightPage] )
        #if($pageIndex!=$pageInfo.currentPage)
    <a href="javascript:gotoPage('$formName', $pageIndex);">$pageIndex</a>
        #else
    <span class="current">$pageIndex</span>
        #end
#end
##计算向右快速翻页
        #if($pageInfo.totalPage > $rightPage)
        #set ($rightNextPage=$rightPage + $pageWidth + 1)
        <a href="javascript:gotoPage('$formName', $rightNextPage);">...</a>
    #end
## 判断是否有下一页,当前页数小于总页数时才有
    #if($pageInfo.currentPage < $pageInfo.totalPage)
    #set($nextPage=${pageInfo.currentPage} + 1)
        <a href="javascript:gotoPage('$formName', $nextPage);">下一页</a>
    #else
    <span class="disabled">下一页 &gt </span>
        #end
        <span class="font_gray_normal" >共$pageInfo.totalPage页&nbsp;&nbsp;到第&nbsp;<input type="text" οnblur="inputPage('$formName',this)"  size="4" class="page_select" />&nbsp;页&nbsp;</span>
    <input name="" type="button" class="btn_sure" οnclick="document.getElementsByName('$formName')[0].submit();" value="" />
    </div>
<script>
    function inputPage(formName,obj){
                if(obj.value != ""){
                gotoPage(formName,obj.value)
                }
            }
    function gotoPage(formName,pageIndex){
if(pageIndex == ""){
alert("请输入页码");
            return;
}
    var pageNum1 = pageIndex + "";
var pageNum = 1;
            var pattern =   /^([0-9])+$/;
                var flag = pattern.test(pageNum1);
            if(flag){
            pageNum = pageNum1;
            }else{
alert("页码["+pageNum1+"]不正确");
            return;
            }
            var pageInputName = "currentPage";
            var pageInput = null;
            var form = document.getElementsByName(formName)[0];


            if(document.getElementsByName(pageInputName).length != 0){
            pageInput = document.getElementsByName(pageInputName)[0];
            pageInput.value = pageNum;
            }else{
            pageInput = document.createElement("input");
            pageInput.type = "hidden";
               pageInput.name = "currentPage";
               pageInput.value = pageNum;
               form.appendChild(pageInput);
            }
form.submit();
            }
    </script>
#else
<div class="pagenumber">没有分页对象</div>
#end
#end

转载于:https://my.oschina.net/u/586094/blog/125489

Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。 Velocity能为我们作什么? The Mud Store Example 假设你是一家专门出售Mud的在线商店的页面设计人员,让我们暂且称它为“在线MUD商店”。你们的业务很旺,客户下了各种类型和数量的mud订单。他们都是通过输入用户名和密码后才登陆到你的网站,登陆后就允许他们查看订单并购买更多的mud。现在,一种非常流行的mud正在打折销售。另外有一些客户规律性的购买另外一种也在打折但是不是很流行的Bright Red Mud,由于购买的人并不多所以它被安置在页面的边缘。所有用户的信息都是被跟踪并存放于数据库的,所以某天有一个问题可能会冒出来:为什么不使用 velocity来使用户更好的浏览他们感兴趣的商品呢? Velocity使得web页面的客户化工作非常容易。作为一个web site的设计人员,你希望每个用户登陆时都拥有自己的页面。 你会见了一些公司内的软件工程师,你发现他们每个人都同意客户应该拥有具有个性化的信息。那让我们把软件工程师应该作的事情发在一边,看一看你应该作些什么吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值