public class VelocityHelper {
public VelocityEngine parseTemplate(String templateFilePath) throws Exception{
VelocityEngine ve = new VelocityEngine();
Properties properties = new Properties();
properties.setProperty(ve.FILE_RESOURCE_LOADER_PATH,templateFilePath);
properties.setProperty(Velocity.ENCODING_DEFAULT, "utf-8");
properties.setProperty(Velocity.INPUT_ENCODING, "utf-8");
properties.setProperty(Velocity.OUTPUT_ENCODING, "utf-8");
ve.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, new NullLogChute());
ve.init(properties);
return ve;
}
}
/**
* 通过velocity 模板生成静态HTML 文件
* @param htmlName 文件名称
* @param toFilePath 模块文件位置 生成路径为 static /html/news/xxx.html
* @param vmTemPath velocity模板文件路径
* @param map 集合
* @param contextName 模板循环名称
*/
public void createHtmlByVelocity(String htmlName,String toFilePath,String tmpName,
String vmTemPath,Map<String,Object> params,String contextName){
try {
VelocityEngine ve = velocityHelper.parseTemplate(vmTemPath);
fileUploadHelper.createFolder(toFilePath);
String filePath=toFilePath+File.separator+htmlName+".html";
FileOutputStream fos = new FileOutputStream(filePath);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
fos, Const.EncodingUTF8));
Template velocity_template =ve.getTemplate(tmpName);
VelocityContext context = new VelocityContext();
context.put(contextName, params);
velocity_template.merge(context,writer );
writer.close();
} catch (Exception e) {
log.error("文件路径失败!",e);
throw new SinotransException("文件路径失败!", e);
}
}
调用处代码
String vmTemPath = request.getSession().getServletContext().getRealPath("/")+ "/WEB-INF/velocity/";
String tmpName="news.vm";
Map<String,Object> params = new HashMap<String,Object>();
params.put("title", title);
params.put("context", context);
params.put("pathList", pathList);
params.put("date", TimeUtil.formatDate(new Date(), "yyyy-MM-dd"));
params.put("newsId", fileId);
exportFileUtil.createHtmlByVelocity(fileId, fileUploadHelper.getHtmlPath()+File.separator+"news", tmpName, vmTemPath, params, "newsMap");
时间长了记不住 留下来当个小笔记。
分享到:
相关推荐
Velocity 是 Apache 软件基金会的一个开源项目,它是一个基于 Java 的模板引擎,主要用于生成动态 Web 内容。这个特定的版本(1.7)包含了所有必要的依赖项,使得开发者能够在其项目中直接使用,而无需额外配置。 ...
总结来说,Velocity是一个强大的模板引擎,它简化了Web应用中视图层的开发。通过标准的使用方式,我们可以有效地将业务逻辑与展示逻辑分离,提高代码的可维护性和可扩展性。在实际开发中,结合Velocity Tools和其他...
3. **Resource Loader**:扩展了Velocity的资源加载机制,使其能够从多种来源(如文件系统、数据库等)加载模板。 4. **MVC框架集成**:如Struts、Spring MVC等,提供与这些流行MVC框架的集成。 在实际项目中,将...
Velocity是Apache软件基金会的一个开源项目,它是一款强大的模板引擎,主要用于生成动态Web内容。Velocity以其简单易用、高效稳定的特点,在Java开发中被广泛应用。它通过分离内容与表现层,帮助开发者实现更清晰的...
Velocity的配置通常通过`velocity.properties`文件完成,可以定制引擎的行为,如模板加载路径、编码设置、错误处理策略等。此外, Velocity还支持自定义事件处理器和指令,扩展性极强。 总的来说,Velocity-1.6.4...
5. **Velocity配置**:一个典型的Velocity配置文件(velocity.properties)会定义模板的加载路径、编码格式、是否启用缓存等参数。开发者可以根据项目需求进行个性化配置。 6. **Velocity与Spring集成**:在Spring...
同时,需要在项目的类路径下放置`velocity.properties`文件,用于配置Velocity的行为,例如模板加载路径和缓存策略。 接下来,创建一个 Velocity模板文件,比如`velocityDemo.vm`。这个文件会包含HTML结构,其中...
开发人员通过Engine与Velocity交互,加载模板,设置上下文数据,然后生成输出。 ** Velocity的优缺点 ** 优点: - **简洁的语法**:Velocity的模板语言设计简洁,易于学习和使用。 - **分离关注点**:通过将视图层...
Velocity 是一款基于 Java 的模板引擎,主要用于生成动态内容,特别是在 Web 开发领域。它能够帮助开发者快速地构建出可读性强、易于维护的 Web 应用。Velocity 的主要特点包括: - **简洁性**:Velocity 的语法...
Velocity是Apache软件基金会的一个开源项目,它是一款强大的模板引擎,主要用于生成动态Web内容。Velocity-1.6.zip这个压缩包包含的是Velocity版本1.6的相关资源,主要为开发者提供了使用Velocity进行开发所需的库...
《Velocity Lib 1.7:Web开发中的高效模板引擎》 在Web开发领域, Velocity Lib 1.7 是一个至关重要的工具,它是一款强大的、基于Java的模板引擎,旨在简化HTML、XML或者其他文档类型的生成。Velocity以其简洁的...
- **初始化**: Velocity 引擎加载配置,如模板路径、缓存策略等。 - **创建上下文**: 填充需要在模板中使用的数据。 - **合并模板**: 将上下文中的数据与模板结合,生成最终的 HTML 或其他格式的输出。 - **输出**: ...
Velocity是Apache软件基金会的一个开源项目,它是一个强大的模板引擎,常用于Java应用中的视图层,如Web应用、邮件服务等。Velocity通过简洁易读的模板语言,使得开发者可以将HTML页面与业务逻辑分离,提高代码的可...
通过初始化Velocity Engine,加载模板,设置上下文,然后渲染模板,就可以生成动态内容。 4. **指令(Directives)**:Velocity 提供了一系列内置指令,如 `#set`, `#if`, `#foreach` 等,它们用于控制模板的逻辑...
【Velocity模板应用...总结来说,Velocity是一个强大的模板引擎,它简化了Web开发中的动态内容生成,使开发者能够更高效地组织和管理应用的视图层。通过熟练掌握Velocity的使用,可以提升项目的可维护性和开发效率。
这一部分主要介绍了如何在非 Web 环境下使用 Velocity,包括使用 Velocity 辅助类、处理异常以及一些杂项细节等。 - **Velocity 辅助类**:提供了简化 Velocity 使用的工具方法。 - **异常处理**:学习如何正确处理...
- 这里,`myAction`是请求的映射,`MyAction`是对应的Action类,`/WEB-INF/templates/myTemplate.vm`是Velocity模板文件的路径。 3. **Velocity模板**: - 创建Velocity模板文件(如`myTemplate.vm`),使用...
** Velocity模板应用详解 ** Velocity是一款强大的Java模板引擎,它为开发者提供了一种与呈现逻辑分离的方式,使得HTML、XML或者其他格式的文档可以更清晰地与业务逻辑代码分开。Velocity被广泛应用于Web应用开发,...