当前位置: 代码迷 >> Web前端 >> velocity 加载web-info 上模板
  详细解决方案

velocity 加载web-info 上模板

热度:1179   发布时间:2012-12-29 10:28:09.0
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");



时间长了记不住 留下来当个小笔记。
  相关解决方案