`
seven.kyo
  • 浏览: 20020 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用velocity生成静态页面,及velocity的循环控制

阅读更多

最近在做门户网站中用到了生成静态页面的技术,使用的是velocity,小小的总结一下---并不是很深入,不过够用

    一>首先在到http://velocity.apache.org/download.cgi下载velocity的jar包

    二>新建一个properties对象,为velocity的一些属性配值:

    Properties prop = new Properties();  
    prop.put("runtime.log", config.getServletContext().getRealPath("/WEB-INF/log/velocity.log"));  
    prop.put("file.resource.loader.path", config.getServletContext().getRealPath("/WEB-INF/vm"));//配置模版目录  
    prop.put("input.encoding", "gb2312");//输入编码  
    prop.put("output.encoding", "gb2312");//输出编码  
    Velocity.init(prop);//初始化  

    三>从数据库提取数据,并生成静态页面

    List pols = getPols();//数据库查询  
    try{  
    File saveDir = new  File(request.getSession().getServletContext().getRealPath("/html"));  
    //静态文件存放目录  
    if(!saveDir.exists())saveDir.mkdirs();  
    VelocityContext context = new VelocityContext();  
    context.put("pols", pols);//将数据放到velocity内容对象内  
    Template template = Velocity.getTemplate("Information/moban.vm");  
    //获得模版; 注意,是在properties里面已经配好的模版目录下  
   FileOutputStream outStream = new FileOutputStream(new File(saveDir,"index.html"));//生成静态文件名为index.html  
   OutputStreamWriter writer = new OutputStreamWriter(outStream,"gb2312");           
   BufferedWriter sw = new BufferedWriter(writer);  
   template.merge(context, sw);  
  sw.flush();  
  sw.close();  
   outStream.close();  
   }  
   catch(Exception e)  
   {  
           e.printStackTrace();  
   }  

   四>关于生成静态页面的时间,我认为应该在后台添加或修改的同时触发生成静态页面的方法,所以方法三是写在添加或更新的Action里面的,放置在添加,更新的方法语句之后.

    五>模版页的写法,velocity的语法我就不说了,网上一堆一堆的,这里我就说下刚使用velocity时遇到的一个小问题

如何循环遍历一个List集合,并控制循环边界的问题 : 要利用velocity中循环语句的$velocityCount(此参数名为固定的,不可更改)参数,它的作用是记录循环次数,控制循环边界可以用它来实现

 

    #foreach($pol in $pols)  
    #if($velocityCount<=2)  
    <li><a>$(pol.content)</a></li>  
    #end  
    #end  

    以上的语句实现的是只循环出集合中的前两个元素,并输出元素的content属性值,如果要求只循环出一个元素,应该写成

 

   #foreach($pol in $pols)  
   #if($velocityCount<=1)  
   <li><a>$(pol.content)</a></li>  
   #end  
   #end  

    如需详细的控制,可以写成  #if($velocityCount==1)

    如果需要一个List中的元素显示不同的属性,可以写成

 

   #foreach($pol in $pols)  
   #if($velocityCount<=2)  
   <li><a>$(pol.content)</a></li>  
   #else  
   <li><a href="${pol.name}.html" mce_href="${pol.name}.html">${pol.content}</a></li>      
   #end  
   #end  

    以上实现的就是让集合中前两个元素只输出pol的content属性值,而之后的元素显示pol的name和content属性值.

    六>OK,大概就这样!

 

2
2
分享到:
评论
1 楼 yujiao_liu5322 2012-03-15  
 

相关推荐

    velocity生成静态网页并分页

    总的来说,"velocity生成静态网页并分页"的项目展示了如何结合Velocity模板引擎和分页技术来创建高效的Web应用。通过将动态内容转化为静态页面,可以显著降低服务器负载,提升用户体验,尤其适用于高流量的网站。...

    velocity实现静态页面分页

    本文将深入探讨如何使用Velocity来实现静态页面的分页功能。 一、Velocity简介 Velocity是由Apache软件基金会开发的开源项目,它提供了一个简单的模板语言,使得开发者可以将内容与展示逻辑分离,让设计人员专注于...

    java生成静态页面的思路

    要使用Java生成静态页面,我们通常需要以下步骤: 1. **数据获取**:首先,我们需要获取用于生成页面的数据。这可能来自于数据库、API接口、文件或任何其他数据源。Java提供了丰富的库,如JDBC用于数据库操作,或者...

    基于Velocity的代码生成器

    Velocity的使用基于模板语言,允许开发者创建模板文件,这些模板包含了静态文本和变量、控制结构(如条件语句和循环)。在运行时,Velocity会将这些模板与数据源结合,生成最终的输出代码。这种设计使得代码生成器...

    使用Velocity Swing制作的代码生成工具

    Velocity语法简单,易于学习,适合用于生成静态页面或代码。 3. **模板引擎**:在代码生成工具中,模板引擎是核心组件。开发者可以预先定义模板文件,模板中包含变量和控制结构,这些在运行时会被实际数据替换,...

    velocity jar包

    Velocity在页面静态化中的作用是动态生成这些静态页面,根据用户数据或环境变量进行个性化定制,同时保持静态页面的高效交付。 在使用Velocity时,开发者首先需要在项目中引入velocity.jar包。这个jar包包含了...

    velocity文档(Velocity1.4java开发指南中文版,Velocity1.4模板使用指南中文版中文版)

    ** Velocity 概述** Velocity 是一个开源的 Java 模板引擎,它允许开发者...通过上述步骤,你将能够熟练地使用 Velocity 1.4 进行 Java Web 开发,将动态数据无缝地融合到静态页面中,提升项目的开发效率和用户体验。

    Velocity Demo

    Velocity是Apache软件基金会下的一个开源项目,它是一个Java模板引擎,用于将静态页面内容与动态数据结合,生成最终的Web页面。Velocity Demo是基于Velocity框架的一个示例项目,旨在帮助初学者快速上手并理解...

    velocity demo

    Velocity 的设计理念是“分离视图”,它使得程序员可以通过简单的模板语言(Velocity Template Language, VTL)来控制页面的输出,而无需深入理解 HTML、CSS 或 JavaScript。 ** Velocity 模板生成静态页面** 在 ...

    使用velocity

    **Velocity**是一种基于Java的模板引擎,用于生成动态HTML页面或其他文本格式的文档。它提供了一种简单而强大的方式来分离业务逻辑与显示逻辑,使得开发者能够更专注于业务处理,而将页面的展示逻辑留给设计人员。 ...

    velocity使用说明doc文档

    Velocity 是一个基于 Java 的模板引擎,它主要用于将静态页面与动态数据分离,使得开发者和设计师可以协同工作,遵循 MVC 架构。Velocity 提供了一种简单而强大的脚本语言——Velocity 模板语言 (VTL),让页面设计者...

    maven velocity

    6. **部署**:最终,整个项目可以通过Maven的部署生命周期阶段发布到服务器,包括Velocity生成的静态页面。 ** 示例项目 "mmsv" ** "mmsv"可能是一个Maven项目,包含了Maven与Velocity整合的示例代码。文件列表中...

    velocity入门使用

    模板是HTML或XML等静态页面,其中包含 Velocity指令(VTL,Velocity Template Language)。上下文则包含了由Java代码传递到模板的数据。通过将数据和模板结合,Velocity能够生成最终的动态内容。 ## 2. 安装与配置 ...

    velocity官方工具包

    **Velocity官方工具包详解** Velocity是一款强大的Java模板引擎,它由Apache软件基金会开发并维护,是Apache Jakarta项目的一部分。...无论是构建Web应用,还是生成静态文档,Velocity都能成为您得力的助手。

    Velocity语法以及整合struts2总结

    1. **预渲染**:在服务器端,Velocity可以先将模板和数据结合生成静态HTML页面,然后直接发送给客户端,提高页面加载速度。 2. **缓存管理**:Velocity支持缓存机制,可以缓存生成的静态页面,减少重复计算和数据库...

    Velocity模板使用指南中文版

    ** Velocity模板语言简介** Velocity是Apache软件基金会的一个开源项目,它是一种...通过学习这本《Velocity模板使用指南中文版》,你将全面了解Velocity模板语言的使用,从而在项目开发中更高效地实现动态内容生成。

    velocity例子

    - 文档生成: Velocity也可用于生成静态HTML、PDF或其他格式的文档,如API文档、报告等。 通过这个“velocity例子”,你可以了解到如何使用Velocity与Java结合,创建动态的Web内容。通过深入研究`velocity_test`...

Global site tag (gtag.js) - Google Analytics