`
Java_大猫
  • 浏览: 173435 次
  • 性别: 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");



时间长了记不住 留下来当个小笔记。
分享到:
评论

相关推荐

    velocity-1.7-dep.jar.zip

    Velocity 是 Apache 软件基金会的一个开源项目,它是一个基于 Java 的模板引擎,主要用于生成动态 Web 内容。这个特定的版本(1.7)包含了所有必要的依赖项,使得开发者能够在其项目中直接使用,而无需额外配置。 ...

    velocity基础教程--1.标准使用

    总结来说,Velocity是一个强大的模板引擎,它简化了Web应用中视图层的开发。通过标准的使用方式,我们可以有效地将业务逻辑与展示逻辑分离,提高代码的可维护性和可扩展性。在实际开发中,结合Velocity Tools和其他...

    velocity-1.7.jar

    3. **Resource Loader**:扩展了Velocity的资源加载机制,使其能够从多种来源(如文件系统、数据库等)加载模板。 4. **MVC框架集成**:如Struts、Spring MVC等,提供与这些流行MVC框架的集成。 在实际项目中,将...

    velocity jar包

    Velocity是Apache软件基金会的一个开源项目,它是一款强大的模板引擎,主要用于生成动态Web内容。Velocity以其简单易用、高效稳定的特点,在Java开发中被广泛应用。它通过分离内容与表现层,帮助开发者实现更清晰的...

    velocity-1.6.4

    Velocity的配置通常通过`velocity.properties`文件完成,可以定制引擎的行为,如模板加载路径、编码设置、错误处理策略等。此外, Velocity还支持自定义事件处理器和指令,扩展性极强。 总的来说,Velocity-1.6.4...

    velocity-web.zip

    5. **Velocity配置**:一个典型的Velocity配置文件(velocity.properties)会定义模板的加载路径、编码格式、是否启用缓存等参数。开发者可以根据项目需求进行个性化配置。 6. **Velocity与Spring集成**:在Spring...

    Velocity学习Web项目

    同时,需要在项目的类路径下放置`velocity.properties`文件,用于配置Velocity的行为,例如模板加载路径和缓存策略。 接下来,创建一个 Velocity模板文件,比如`velocityDemo.vm`。这个文件会包含HTML结构,其中...

    velocity web开发

    开发人员通过Engine与Velocity交互,加载模板,设置上下文数据,然后生成输出。 ** Velocity的优缺点 ** 优点: - **简洁的语法**:Velocity的模板语言设计简洁,易于学习和使用。 - **分离关注点**:通过将视图层...

    Velocity Web应用开发

    Velocity 是一款基于 Java 的模板引擎,主要用于生成动态内容,特别是在 Web 开发领域。它能够帮助开发者快速地构建出可读性强、易于维护的 Web 应用。Velocity 的主要特点包括: - **简洁性**:Velocity 的语法...

    velocity-1.6.zip

    Velocity是Apache软件基金会的一个开源项目,它是一款强大的模板引擎,主要用于生成动态Web内容。Velocity-1.6.zip这个压缩包包含的是Velocity版本1.6的相关资源,主要为开发者提供了使用Velocity进行开发所需的库...

    velocity_lib1.7-jar包

    《Velocity Lib 1.7:Web开发中的高效模板引擎》 在Web开发领域, Velocity Lib 1.7 是一个至关重要的工具,它是一款强大的、基于Java的模板引擎,旨在简化HTML、XML或者其他文档类型的生成。Velocity以其简洁的...

    Velocity模板使用指南中文版

    - **初始化**: Velocity 引擎加载配置,如模板路径、缓存策略等。 - **创建上下文**: 填充需要在模板中使用的数据。 - **合并模板**: 将上下文中的数据与模板结合,生成最终的 HTML 或其他格式的输出。 - **输出**: ...

    velocity模板路径

    Velocity是Apache软件基金会的一个开源项目,它是一个强大的模板引擎,常用于Java应用中的视图层,如Web应用、邮件服务等。Velocity通过简洁易读的模板语言,使得开发者可以将HTML页面与业务逻辑分离,提高代码的可...

    velocity-1.6.3_Src_jar.zip

    通过初始化Velocity Engine,加载模板,设置上下文,然后渲染模板,就可以生成动态内容。 4. **指令(Directives)**:Velocity 提供了一系列内置指令,如 `#set`, `#if`, `#foreach` 等,它们用于控制模板的逻辑...

    Velocity模板应用案例

    【Velocity模板应用...总结来说,Velocity是一个强大的模板引擎,它简化了Web开发中的动态内容生成,使开发者能够更高效地组织和管理应用的视图层。通过熟练掌握Velocity的使用,可以提升项目的可维护性和开发效率。

    Apache Velocity - Developer's Guide

    这一部分主要介绍了如何在非 Web 环境下使用 Velocity,包括使用 Velocity 辅助类、处理异常以及一些杂项细节等。 - **Velocity 辅助类**:提供了简化 Velocity 使用的工具方法。 - **异常处理**:学习如何正确处理...

    Struts2 整合 velocity最简单工程 最少的jar包

    - 这里,`myAction`是请求的映射,`MyAction`是对应的Action类,`/WEB-INF/templates/myTemplate.vm`是Velocity模板文件的路径。 3. **Velocity模板**: - 创建Velocity模板文件(如`myTemplate.vm`),使用...

    Velocity模板应用

    ** Velocity模板应用详解 ** Velocity是一款强大的Java模板引擎,它为开发者提供了一种与呈现逻辑分离的方式,使得HTML、XML或者其他格式的文档可以更清晰地与业务逻辑代码分开。Velocity被广泛应用于Web应用开发,...

Global site tag (gtag.js) - Google Analytics