`
qieyi28
  • 浏览: 158318 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用velocity生成静态页面

 
阅读更多
最近在做门户网站中用到了生成静态页面的技术,使用的是velocity,小小的总结一下---并不是很深入,不过够用
    一>首先在到http://velocity.apache.org/download.cgi下载velocity的jar包
    二>新建一个properties对象,为velocity的一些属性配值:
  
[java] view plaincopy
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);//初始化  

    三>从数据库提取数据,并生成静态页面
  
[java] view plaincopy
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/zcfg.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(此参数名为固定的,不可更改)参数,它的作用是记录循环次数,控制循环边界可以用它来实现
  
[xhtml] view plaincopy
#foreach($pol in $pols)  
#if($velocityCount<=2)  
<li><a>$(pol.content)</a></li>  
#end  
#end 


以上的语句实现的是只循环出集合中的前两个元素,并输出元素的content属性值,如果要求只循环出一个元素,应该写成
  
[c-sharp] view plaincopy
#foreach($pol in $pols)  
#if($velocityCount<=1)  
<li><a>$(pol.content)</a></li>  
#end  
#end 


    如果需要详细的控制,可以写成#if($velocityCount==1)
    如果需要一个List中的元素显示不同的属性,可以写成
  
[xhtml] view plaincopy
#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,大概就这样!
分享到:
评论

相关推荐

    velocity生成静态页面实例

    在“velocity生成静态页面实例”中,我们首先需要一个 Velocity模板文件(通常以`.vm`为扩展名),在这个文件中,我们可以使用Velocity语法来定义页面结构,并插入动态数据占位符。例如,我们可以写一个简单的模板:...

    velocity生成静态网页并分页

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

    javaCMS 生成静态页面简单列子

    Java CMS(内容管理系统)生成静态页面是一种常见的优化网站性能和提升用户体验的方法。在这个过程中,原本由动态脚本生成的网页内容被转化为HTML文件,这些HTML文件可以被浏览器直接读取,减少了服务器处理请求的...

    java生成静态页面的思路

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

    velocity实现静态页面分页

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

    Velocity Template的另类用法:生成XML

    Velocity Template,作为Apache开源组织提供的一个Java模板引擎,最初被设计用于Web开发中的视图层,帮助开发者将静态页面与动态数据分离。然而,它的应用并不仅限于此,正如标题所示,“Velocity Template的另类...

    Java 生成静态页

    Java 生成静态页是一种常见的优化网站性能的技术,它将原本由服务器动态生成的网页内容转换为静态HTML文件,然后提供给客户端直接下载和浏览。这种技术可以显著减少服务器的负载,提高页面加载速度,尤其在高并发...

    java解决网站静态页面生成方案(源码)

    7. **异步处理**: 为了不阻塞其他请求,`CreatorHtmlServlet`可能会使用异步处理或者工作队列来生成静态页面,特别是在处理大型或复杂页面时。 8. **日志和错误处理**: 良好的日志记录和错误处理机制对于调试和监控...

    jsp生成静态页面资料.rar

    JSP生成静态页面是提高网站性能的一种常见策略,因为它可以减少服务器处理的负担,加快用户加载速度。下面将详细解释JSP生成静态页面的概念、原理以及实现方法。 1. **静态页面与动态页面的区别** 静态页面是由纯...

    Velocity+Struts生成html

    Velocity和Struts结合使用,能够高效地生成HTML页面,实现动态内容的展示,尤其适合于复杂的Web应用。这种架构模式有助于提高代码的可维护性和可扩展性,使得开发者可以更好地关注业务逻辑,而不是页面的生成。通过...

    java自动生成静态页面Demo源码

    在本示例中,"java自动生成静态页面Demo源码" 提供了一个完整的实现,包括源代码和可能使用的数据库连接,以便用户能够理解和应用这种技术。 1. **Java 语言基础**: Java 是一种广泛使用的面向对象的编程语言,以...

    velocity freemarke 模版 静态化 实现

    - 可以通过缓存机制,只在数据更新时重新生成静态页面,提高效率。 - 使用URL重写技术,保持动态URL与静态HTML之间的对应关系。 - 对于大量数据的页面,可以考虑分页静态化或者部分静态化,只对关键部分进行静态...

    test_static_html:java生成静态HTML

    标题“test_static_html:java生成静态HTML”暗示了这是一个关于使用Java编程语言生成静态HTML页面的主题。在IT领域,静态HTML是指不包含服务器端脚本的网页,它们的内容在发送到浏览器时不会改变。这样的页面通常...

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

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

    通用静态页面生成系统

    随后,系统会将获取的数据结合HTML模板,通过模板引擎技术如FreeMarker或Velocity将数据填充到相应的HTML模板中,从而生成最终的静态页面。这一过程往往涉及复杂的模板设计与动态数据处理,但得益于现代模板引擎的...

    html.rar_html页面_java 静态模板_java 静态页面_java生成html_静态页面

    6. **使用Java生成静态页面的流程**:首先,创建一个HTML模板,其中包含占位符或表达式。然后,使用Java代码读取模板并填充数据,例如从数据库获取。最后,将填充后的HTML保存到文件系统,等待用户请求时直接发送。 ...

    Jsp结合Velocity实现依据Word模板文件生成对应数据文件

    5. **渲染模板**:使用Velocity的`Template`和`VelocityContext`对象,将数据合并到模板中,生成新的Word文档。 6. **保存或输出文件**:最后,将生成的Word文档保存到服务器磁盘或直接作为HTTP响应发送给客户端。 ...

    使用FreeMarker生成Html静态文件

    FreeMarker是一个强大的、开源的模板引擎,主要用于生成HTML或其他类型的文本,尤其在Web开发中用于动态生成静态HTML页面。它与Java紧密集成,是MVC(Model-View-Controller)架构中的View层常选用的技术之一。 ...

    Velocity Demo

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

    velocity jar包

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

Global site tag (gtag.js) - Google Analytics