最近在做门户网站中用到了生成静态页面的技术,使用的是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模板文件(通常以`.vm`为扩展名),在这个文件中,我们可以使用Velocity语法来定义页面结构,并插入动态数据占位符。例如,我们可以写一个简单的模板:...
总的来说,"velocity生成静态网页并分页"的项目展示了如何结合Velocity模板引擎和分页技术来创建高效的Web应用。通过将动态内容转化为静态页面,可以显著降低服务器负载,提升用户体验,尤其适用于高流量的网站。...
Java CMS(内容管理系统)生成静态页面是一种常见的优化网站性能和提升用户体验的方法。在这个过程中,原本由动态脚本生成的网页内容被转化为HTML文件,这些HTML文件可以被浏览器直接读取,减少了服务器处理请求的...
要使用Java生成静态页面,我们通常需要以下步骤: 1. **数据获取**:首先,我们需要获取用于生成页面的数据。这可能来自于数据库、API接口、文件或任何其他数据源。Java提供了丰富的库,如JDBC用于数据库操作,或者...
本文将深入探讨如何使用Velocity来实现静态页面的分页功能。 一、Velocity简介 Velocity是由Apache软件基金会开发的开源项目,它提供了一个简单的模板语言,使得开发者可以将内容与展示逻辑分离,让设计人员专注于...
Velocity Template,作为Apache开源组织提供的一个Java模板引擎,最初被设计用于Web开发中的视图层,帮助开发者将静态页面与动态数据分离。然而,它的应用并不仅限于此,正如标题所示,“Velocity Template的另类...
Java 生成静态页是一种常见的优化网站性能的技术,它将原本由服务器动态生成的网页内容转换为静态HTML文件,然后提供给客户端直接下载和浏览。这种技术可以显著减少服务器的负载,提高页面加载速度,尤其在高并发...
7. **异步处理**: 为了不阻塞其他请求,`CreatorHtmlServlet`可能会使用异步处理或者工作队列来生成静态页面,特别是在处理大型或复杂页面时。 8. **日志和错误处理**: 良好的日志记录和错误处理机制对于调试和监控...
JSP生成静态页面是提高网站性能的一种常见策略,因为它可以减少服务器处理的负担,加快用户加载速度。下面将详细解释JSP生成静态页面的概念、原理以及实现方法。 1. **静态页面与动态页面的区别** 静态页面是由纯...
Velocity和Struts结合使用,能够高效地生成HTML页面,实现动态内容的展示,尤其适合于复杂的Web应用。这种架构模式有助于提高代码的可维护性和可扩展性,使得开发者可以更好地关注业务逻辑,而不是页面的生成。通过...
在本示例中,"java自动生成静态页面Demo源码" 提供了一个完整的实现,包括源代码和可能使用的数据库连接,以便用户能够理解和应用这种技术。 1. **Java 语言基础**: Java 是一种广泛使用的面向对象的编程语言,以...
- 可以通过缓存机制,只在数据更新时重新生成静态页面,提高效率。 - 使用URL重写技术,保持动态URL与静态HTML之间的对应关系。 - 对于大量数据的页面,可以考虑分页静态化或者部分静态化,只对关键部分进行静态...
标题“test_static_html:java生成静态HTML”暗示了这是一个关于使用Java编程语言生成静态HTML页面的主题。在IT领域,静态HTML是指不包含服务器端脚本的网页,它们的内容在发送到浏览器时不会改变。这样的页面通常...
Velocity语法简单,易于学习,适合用于生成静态页面或代码。 3. **模板引擎**:在代码生成工具中,模板引擎是核心组件。开发者可以预先定义模板文件,模板中包含变量和控制结构,这些在运行时会被实际数据替换,...
随后,系统会将获取的数据结合HTML模板,通过模板引擎技术如FreeMarker或Velocity将数据填充到相应的HTML模板中,从而生成最终的静态页面。这一过程往往涉及复杂的模板设计与动态数据处理,但得益于现代模板引擎的...
6. **使用Java生成静态页面的流程**:首先,创建一个HTML模板,其中包含占位符或表达式。然后,使用Java代码读取模板并填充数据,例如从数据库获取。最后,将填充后的HTML保存到文件系统,等待用户请求时直接发送。 ...
5. **渲染模板**:使用Velocity的`Template`和`VelocityContext`对象,将数据合并到模板中,生成新的Word文档。 6. **保存或输出文件**:最后,将生成的Word文档保存到服务器磁盘或直接作为HTTP响应发送给客户端。 ...
FreeMarker是一个强大的、开源的模板引擎,主要用于生成HTML或其他类型的文本,尤其在Web开发中用于动态生成静态HTML页面。它与Java紧密集成,是MVC(Model-View-Controller)架构中的View层常选用的技术之一。 ...
Velocity是Apache软件基金会下的一个开源项目,它是一个Java模板引擎,用于将静态页面内容与动态数据结合,生成最终的Web页面。Velocity Demo是基于Velocity框架的一个示例项目,旨在帮助初学者快速上手并理解...
Velocity在页面静态化中的作用是动态生成这些静态页面,根据用户数据或环境变量进行个性化定制,同时保持静态页面的高效交付。 在使用Velocity时,开发者首先需要在项目中引入velocity.jar包。这个jar包包含了...