`
Java_大猫
  • 浏览: 170508 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

velocity 加载web-info 下模板

阅读更多
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简介和对比

    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 | 分布式服务框架 | ...

    Struts2\constant应用

    该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。 struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用...

    JFinal(JAVA 极速WEB ORM框架 ) v3.2.zip

    自动加载修改后的java文件,开发过程中无需重启web server AOP支持,拦截器配置灵活,功能强大 Plugin体系结构,扩展性强 多视图支持,支持FreeMarker、JSP、Velocity 强大的Validator后端校验功能 功能齐全,...

    spring jar 包详解

    可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。...

    Struts2属性文件详解

    该属性指定视图主题所需要模板文件的位置, 该属性的默认值是template,即默认加载template路径下的模板文件. struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl.该属性还允许使用ftl、vm...

    JFinal极速WEB+ORM框架 v5.1.1

    JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、...

    JFinal v3.2

    JFinal有如下主要特点:MVC架构,设计精巧,使用简单遵循COC原则,零配置,无xml独创Db + Record模式,灵活便利ActiveRecord支持,使数据库开发极致快速自动加载修改后的java文件,开发过程中无需重启web serverAOP...

    JFinal极速WEB+ORM框架-其他

    MVC 架构,设计精巧,使用简单遵循 COC 原则,零配置,无 XML独创 Db + Record 模式,灵活便利ActiveRecord 支持,使数据库开发极致快速极简、强大、高性能模板引擎 Enjoy,十分钟内掌握 90% 用法自动加载修改后的 ...

    jfinal:JAVA WEB + ORM框架

    设计精巧,使用简单遵守COC原则,支持零配置,无XML独创Db + Record模式,灵活便利ActiveRecord支持,使数据库开发极致快速极简,强大,高效模板引擎Enjoy,十分钟内掌握90%用法自动加载修改后的Java文件,...

    springboot参考指南

    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...

    Struts2 in action中文版

    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中...

    jfinal:jfinal原始码学习可以查看作者https

    设计精巧,使用简单遵循COC原则,零配置,无XML独创Db + Record模式,灵活便利ActiveRecord支持,使数据库开发极致快速极简,强大,高效模板引擎Enjoy,十分钟内掌握90%用法自动加载修改后的Java文件,开发过程中...

    Spring中文帮助文档

    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. 便利的切入...

    Spring API

    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. 便利的切入...

Global site tag (gtag.js) - Google Analytics