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");
时间长了记不住 留下来当个小笔记。
分享到:
相关推荐
jsp、freemarker、velocity简介和对比。---如果你已经开发Java Web应用程序一段时间,那么对于 JVM 的 PermGen 问题可能并...由于 FreeMarker 模板不编译成类,它们不占用 PermGen 空间,并不需要一个新的类加载器加载
Velocity | 模板引擎 | [http://velocity.apache.org/](http://velocity.apache.org/) ZooKeeper | 分布式协调服务 | [http://zookeeper.apache.org/](http://zookeeper.apache.org/) Dubbo | 分布式服务框架 | ...
该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。 struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用...
自动加载修改后的java文件,开发过程中无需重启web server AOP支持,拦截器配置灵活,功能强大 Plugin体系结构,扩展性强 多视图支持,支持FreeMarker、JSP、Velocity 强大的Validator后端校验功能 功能齐全,...
可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。...
该属性指定视图主题所需要模板文件的位置, 该属性的默认值是template,即默认加载template路径下的模板文件. struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl.该属性还允许使用ftl、vm...
JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、...
JFinal有如下主要特点:MVC架构,设计精巧,使用简单遵循COC原则,零配置,无xml独创Db + Record模式,灵活便利ActiveRecord支持,使数据库开发极致快速自动加载修改后的java文件,开发过程中无需重启web serverAOP...
MVC 架构,设计精巧,使用简单遵循 COC 原则,零配置,无 XML独创 Db + Record 模式,灵活便利ActiveRecord 支持,使数据库开发极致快速极简、强大、高性能模板引擎 Enjoy,十分钟内掌握 90% 用法自动加载修改后的 ...
设计精巧,使用简单遵守COC原则,支持零配置,无XML独创Db + Record模式,灵活便利ActiveRecord支持,使数据库开发极致快速极简,强大,高效模板引擎Enjoy,十分钟内掌握90%用法自动加载修改后的Java文件,...
1. 介紹 2. I. Spring Boot文档 i. 1....ii. 2....iii....iv....v....vi....vii....3. II....i....ii....i....iii....i....i....ii....ii....i....ii....iii....iv....v....vi....iii....iv....v....vi....vii....i.... 自定义'白标'(whitelabel,可以了解下相关理念)错误页面 x. 71...
8.3.1 VelocityResult,也叫做velocity 189 8.3.2 FreemarkerResult,也叫做freemarker 191 8.4 全局结果 192 8.5 小结 193 第四部分 完善应用程序 第9章 集成Spring和Hibernate/JPA 196 9.1 为什么在Struts 2中...
设计精巧,使用简单遵循COC原则,零配置,无XML独创Db + Record模式,灵活便利ActiveRecord支持,使数据库开发极致快速极简,强大,高效模板引擎Enjoy,十分钟内掌握90%用法自动加载修改后的Java文件,开发过程中...
6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...
6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...