`
snoopy7713
  • 浏览: 1149200 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

Velocity分页模板

阅读更多

#*
宏pageGrid:自定义表格宏
${gridInfo}: 表格中的信息,含数据和分页信息,样式等
20行<!--表格样式需在引用css-->
26行<!--表格标题头行-->
47行<!--表格内容奇数行与偶数行在鼠标移动到上面时变色-->
55行<!--表格首列是否显示checkbox-->
54行<!-- 定义表格某列为链接列-->
63行<!--定义表格某列为链接列,引用页面需定义js函数griddetail('$id')-->
78行<!--在表格后加图片列用来操作-->
81行<!--在表格后加图片列用来操作引用页面需定义js函数$img.imageEvent('$id')-->
131行<!--引用循环页码-->
102行<!--checkbox批处理-->
*#

#macro (pageGrid $gridInfo)
<table width="100%">
   <!--表格内容开始-->
   <tr>
   <td>     
         <table id="listTable" class="grid">
       #set ($rowCount = 0)
             #foreach ($map in $gridInfo.list)
              #set ($row = $map.get("value"))
        #set ($colCount = 0)
        #set ($id = "")
                 #if ($rowCount == 0)
                  <tr class="blue_bold">
                     #foreach ($col in $row)
          #if ($colCount == 0)
        #if($gridInfo.gridStyle.checked)
        <th></th>
        #end
       #else
        <th>
                             $col
                             </th>       
          #end
          #set ($colCount = $colCount + 1)
         #end
         #foreach ($ecol in $gridInfo.gridStyle.columns)
          <th>
                         $ecol
                         </th>
         #end    
         </tr>
                 #else    <!--表格内容行-->
                  #set ($imp = $map.get("IMP"))
         #set ($isOddRow = $rowCount % 2 != 0)
         #if($imp == "1")
                      <tr class="text_bc03">
                  #else
                   #if ($isOddRow)
                       <tr   onMouseOver='high(this);' onMouseOut='low(this);' class='odd'>
                      #else
                       <tr   onMouseOver='high(this);' onMouseOut='low(this);' class='even'>
                      #end
                  #end
    <script>             
        function colvalue(cv)
    {
      if(cv.length>20)
      {
       var pattern=RegExp("(<IMG\\s*[\\S]*\\s*/\\s*>)([\\S]*)");
       if (pattern.exec(cv))
       {
          var str1=RegExp.$1;
          var str2=RegExp.$2;
          return str1+str2.substring(0,20)+"...";
       }
       else
       {
          return cv.substring(0,20)+"...";
       }
      }
      else
      {
       return cv;
      }
     }
   
   </script>
                     #foreach ($col in $row)
          #if ($colCount == 0)
           #set ($id = $col)
        #if($gridInfo.gridStyle.checked)
         <td><input type="checkbox" name="model.grid_check"   value="$id"/></td>
        #end
          #else
              #if ($colCount == $gridInfo.gridStyle.linkNum)
                              <td align="center" title='$col'>
                             #else
                              <td title='$col'>
           #end
              
                             #if ($col == "")
                              &nbsp;
                             #else
                                 
             #if($colCount == $gridInfo.gridStyle.linkNum)      
         <a href="javascript:griddetail('$id');" >
         <script>document.write(colvalue('$col')); </script>
         </a>
          #else
            <script>document.write(colvalue('$col')); </script>
          #end
                             #end
                             </td>
          #end
          #set ($colCount = $colCount + 1)
         #end
     
      #foreach ($imgs in $gridInfo.gridStyle.images)
             <td>
              #foreach ($img in $imgs)
                  #set ($imageEvent = $img.imageEvent)
                              <img src="$img.imagePath" alt="$img.imageTitle" onclick="javascript:img$imageEvent('$id');" style="cursor:hand"/> &nbsp; &nbsp;              
                          #end
                         </td>
         
         #end
                  </tr>
                 #end
        #set ($rowCount = $rowCount + 1)
       #end
         </table>
   </td>
   </tr>
   <!--表格内容结束-->
   <!--分页开始-->
   <tr>
    <td>
    <table   width="100%">
     <tr>
     <td align="left">
      #if($gridInfo.gridStyle.checked)
       <td>&nbsp;<input type="checkbox" name="grid_check_all" onclick="javascript:selectall();"/>全部选中</td>
      #end
     </td>
     <td align="right">
    
     #if ($gridInfo.list)
    
      #if ($gridInfo.gridStyle.pagable)
      
       #set($prepage = $gridInfo.currentpage - 1)
       #set($nextpage = $gridInfo.currentpage + 1)
      
       #if ($gridInfo.gridStyle.displaySum)
        共<font color="red">$gridInfo.sumrecords</font>条记录
        <input type="hidden" name="model.pageGridInfo.sumrecords" value="$!{model.pageGridInfo.sumrecords}">
       #end
       每页<input type="text"id="pPR" name="model.pageGridInfo.perPageRows" class="page_input"value="$gridInfo.perPageRows" onchange="document.getElementById('cpage').value='1';" />条
       共$gridInfo.sumpages页
      
       #if ($gridInfo.firstPage)
        <img src="/images/arrow_pre02.gif" onclick="page(1)">
       #else
        <img src="/images/arrow_pre02.gif">
       #end
      
       #if ($gridInfo.previousPage)
        <img src="/images/arrow_pre.gif" onclick="page($prepage)">
       #else
        <img src="/images/arrow_pre.gif">
       #end
      
       #set($indexPage =$gridInfo.currentpage/$gridInfo.prePageNum*$gridInfo.prePageNum)
          #set($lastPageNum = $indexPage+$gridInfo.prePageNum)
       #pagePrint($indexPage $gridInfo.prePageNum   $gridInfo.sumpages $lastPageNum)
      
       #if ($gridInfo.nextPage)
        <img src="/images/arrow_next.gif" onclick="page($nextpage)">
       #else
        <img src="/images/arrow_next.gif">
       #end     
            
      
       #if ($gridInfo.endPage)
        <img src="/images/arrow_next02.gif" onclick="page($gridInfo.sumpages)">
       #else
        <img src="/images/arrow_next02.gif">
       #end
      
       第<input type="text"id="cpage" name="model.pageGridInfo.currentpage" class="page_input" value="$gridInfo.currentpage" />页      
     
       <script language="javascript" type="text/javascript">
      
       function pagego()
       {
        p=parseInt(document.getElementById('pPR').value);
        s=parseInt(document.getElementById('cpage').value);
        if(/[\D]/g.test(p))
        {
                            alert('每页显示记录数必须全部是数字');
                            document.getElementById('pPR').value=$gridInfo.perPageRows;
                          }
                           if(p==0)
        {
                            alert('每页显示记录数不能为零');
                            document.getElementById('pPR').value=$gridInfo.perPageRows;
                          }
        if(s<=0)
        {
          alert('页码必须大于0');
                            return s=$gridInfo.currentpage;
        }
        if(s>$gridInfo.sumpages)
        {
          alert('页码必须小于总页数');
                            return s=$gridInfo.currentpage;
        }
        if(/[\D]/g.test(s))
        {
                            alert('页码必须全部是数字');
                            return s=$gridInfo.currentpage;
                          }
                          else
                          {
          return s;
        }
       }
                      </script>
                      <input type="button" name="pageGo"   value="GO" onclick="page(pagego());" />
      #end
     #end
     </td>
     </tr>
    </table>
    </td>
   </tr>
<!--分页结束-->
</table>
#end
<!--定义循环页码-->
#macro (pagePrint $indexPage $prePageNum   $sumpages $lastPageNum)

#if ($indexPage<$lastPageNum&&$indexPage<$sumpages)

#set($indexPage =$indexPage+1)
<a href="javascript:page($indexPage)" >$indexPage</a>
#pagePrint($indexPage $prePageNum   $sumpages $lastPageNum)
  
#end
#end

 

分享到:
评论

相关推荐

    velocity实现静态页面分页

    为了代码的复用性和可维护性,可以将分页模板封装成一个宏库,然后在需要分页的地方引入这个宏。 四、实例分析 "PageList"可能是用于存储分页数据的一个类或者文件名,它可能包含了分页所需的信息,如当前页、总...

    velocity生成静态网页并分页

    本项目的核心是利用Velocity模板语言和分页技术,生成具有分页功能的静态网页。 Velocity的工作原理是将HTML模板与Java代码分离,开发者可以在HTML模板中插入特定的Velocity指令,然后由Velocity引擎负责解析这些...

    velocity分页的例子

    在这个"velocity分页的例子"中,我们将探讨如何使用Velocity实现分页功能,这对于处理大量数据的网页展示至关重要。 分页是一种用户界面设计技术,用于将大量数据分割成多个小块,每次只显示一部分,以提高用户体验...

    ssm框架+maven+velocity+pagehelper分页整合

    本项目整合了这三个组件,并加入了Maven作为构建工具,以及Velocity模板引擎和PageHelper分页插件,以提供更便捷的开发体验。以下是关于这些技术的详细介绍: 1. **Spring框架**:Spring是Java企业级应用的核心框架...

    SpringBoot集成Mybatis,velocity模板展示数据

    本项目主要探讨的是如何将SpringBoot与Mybatis、Velocity模板引擎进行整合,以便更高效地展示和处理数据。 首先,让我们深入了解SpringBoot的核心特性。SpringBoot的设计理念是“约定优于配置”,它内置了Tomcat...

    velocity+ssh2+分页+权限

    总结,"velocity+ssh2+分页+权限"的整合涉及到Web开发中的多个关键环节,包括模板引擎的使用、MVC架构的实现、数据的分页展示以及安全的权限控制。通过这样的整合,开发者可以构建出高效、安全且易于维护的企业级...

    springmvc+mybatis+velocity整合实例

    最后,创建Velocity模板文件,如index.vtl,用Velocity语法展示数据。 在实际开发中,通常会使用注解的方式,比如在Controller中使用@RequestMapping,Service和Mapper接口上使用@Service和@Mapper注解,使得整个...

    ssm+velocity增删改分页(含数据库)

    你可以学习如何使用MyBatis的分页插件或者自定义分页逻辑,结合前端Velocity模板实现分页显示。 7. **数据库设计**:为了实现上述功能,你需要设计一个合适的数据库表结构。这可能涉及到数据库关系建模,以及创建...

    Java web velocity分页宏示例

    在这个示例中,我们将深入理解如何在 Velocity 模板中实现分页宏。 分页宏的主要目的是展示数据的多个页面链接,让用户能够轻松浏览不同页的数据。在给定的代码中,`#macro(pager $url $pager)` 定义了一个名为 `...

    itext加载velocity生成PDF

    将两者结合,我们可以利用`Velocity`的模板能力来动态生成PDF内容,这在SpringMVC框架中尤其方便。 `iText`库提供了一系列API,用于创建PDF文档、添加文字、图像、表格等元素。它支持流式和模型两种模式,前者适用...

    基于NVelocity模板引擎实现的分页实例

    介绍:http://blog.csdn.net/windxxf/archive/2010/10/27/5969811.aspx 基于NVelocity模板引擎实现的分页实例 数据库为Sql2005格式,App_Data目录下附加即可

    velocity freemarke 模版 静态化 实现

    Velocity和FreeMarker是两种常用的Java模板引擎,它们可以方便地结合JSP(JavaServer Pages)进行动态网页生成,并实现页面静态化。本文将详细介绍如何使用Velocity和FreeMarker模板实现页面静态化,并提供具体的...

    做个分页类内部的输出模板

    可以考虑使用模板引擎(如FreeMarker、Velocity)或者纯字符串拼接。 5. **自定义与扩展**:为了满足不同场景的需求,分页类应该允许自定义样式、链接格式、是否显示页码列表等选项。可以设计为通过构造函数参数或...

    SSH+Ajax+velocity小型购物商城

    在购物商城项目中,Velocity模板用于: - 创建动态页面:根据用户请求,结合后台数据生成个性化的页面。 - 控制页面布局:定义页面的头部、主体和底部等结构,方便维护和更新。 - 插入动态内容:在页面中插入如用户...

    JSP网页模板

    "YiBei"可能是这个压缩包提供的分页模板的名称。这个模板可能包含了美观的分页样式和相应的JSP代码,用于展示如何优雅地实现分页功能。通过分析和学习"YiBei"模板,开发者可以理解如何在实际项目中有效地运用JSP进行...

    Spring3.0.1+Mybatis3.0.5+Struts2.2.3.1+velocity1.7+DWZ

    与JSP相比,Velocity更加专注于模板逻辑,避免了在模板中编写过多的Java代码,使页面更易于维护。在这个项目中,Velocity模板(VM)用于渲染DWZ框架的前端页面。 **DWZ (EasyUI for jQuery)**: DWZ是一个开源的...

    springMVC+velocity实现仿Datatables局部刷新分页方法

    在本文中,我们将探讨如何使用SpringMVC和Velocity框架实现一个仿Datatables的局部刷新分页功能。这个方法适用于那些不希望使用Datatables插件,但仍然需要保持页面风格统一和避免查询参数在页面上回显的情况。 ...

    自定义通用分页一行代码解决分页问题

    PageBeanTag助手类可能是在服务器端与前端交互时使用的,例如在JSP或Velocity模板中,它可以帮助渲染分页链接。`PageBeanTag`可以提供以下功能: 1. `doStartTag()`: 开始标签处理,初始化分页参数。 2. `doEndTag...

    jsp分页

    6. 模板技术:现代的JSP开发往往结合FreeMarker、Velocity等模板技术,将业务逻辑与视图分离,使得分页实现更加清晰。 7. AJAX异步分页:为了提升用户体验,可以采用AJAX技术实现页面不刷新的分页,通过JavaScript...

    JSP数据库数据AJAX无刷新分页

    在实际项目中,为了提高代码复用性和可维护性,我们还会使用模板引擎(如FreeMarker或Velocity)来分离视图和逻辑,使用MVC框架(如Spring MVC)来组织项目结构,以及使用ORM框架(如Hibernate或MyBatis)来简化...

Global site tag (gtag.js) - Google Analytics