`
gcgmh
  • 浏览: 348936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

freemarker

阅读更多
public class FreeMarkerFactory {
	
	static Configuration  cfg = new Configuration();
	
	
	/*     处理一个list  模板:
	 * 		<#list news as new>
			title:${new.title}
			content:${new.content}
			date:${new.date}
			</#list>
	 */
	public static void createHtml() throws IOException, TemplateException{
		
		cfg.setDirectoryForTemplateLoading(new File("D:\\eclipse3.5workspace\\freemarker\\html\\"));
		
		List<New> news  = new ArrayList<New>();
		New newz = new New("","","");
		newz.setPath("D:\\eclipse3.5workspace\\freemarker\\html\\1.html");
		newz.setTitle("111111111111");
		news.add(newz);
		New newz2 = new New("","","");
		newz2.setPath("D:\\eclipse3.5workspace\\freemarker\\html\\2.html");
		newz2.setTitle("22222222222222");
		news.add(newz2);
		
		Map map = new HashMap();
		map.put("news", news);
		
		Template t = cfg.getTemplate("news.ftl");
		
		File htmlFile = new File("D:\\eclipse3.5workspace\\freemarker\\html\\"+"news.html");
		 
		Writer out = new BufferedWriter(new OutputStreamWriter(
				new FileOutputStream(htmlFile), "utf-8"));
		t.process(map, out);
		
	}
	
	/*处理一个对象   模板:
	 * 	title:${title}
		content:${content}
		date:${date}
	 */
	public static void createHtml2() throws IOException, TemplateException{
		cfg.setDirectoryForTemplateLoading(new File("D:\\eclipse3.5workspace\\freemarker\\html\\"));
		
		New news = new New("第一个新闻","第一个新闻内容",new Date().toGMTString());
		Map<String, New> newMap = new HashMap<String, New>();
		newMap.put("news",news);
		Template t = cfg.getTemplate("news2.ftl");
		t.process(news, new OutputStreamWriter(System.out));
		
	}
	
	/*处理一个对象   生成文件
	 *  title:${title}
		content:${content}
		date:${date}
	 */
	public static void createHtml3() throws IOException, TemplateException{
		cfg.setDirectoryForTemplateLoading(new File("D:\\eclipse3.5workspace\\freemarker\\html\\"));
		New news = new New("第2个新闻","第2个新闻内容",new Date().toGMTString());
		Map<String, New> newMap = new HashMap<String, New>();
		newMap.put("news",news);
		Template t = cfg.getTemplate("news2.ftl");
		
		File htmlFile = new File("D:\\eclipse3.5workspace\\freemarker\\html\\"+"2.html");
		 
		Writer out = new BufferedWriter(new OutputStreamWriter(
				new FileOutputStream(htmlFile), "utf-8"));
		t.process(news, out);
		out.flush();
		out.close();
		
	}
	
	public static void main(String[] args) throws IOException, TemplateException {
		FreeMarkerFactory.createHtml();
//		FreeMarkerFactory.createHtml3();
	}

}




====================================
//if用法
<#if links?size != 0>
<div class="link">
        <strong>友情链接:</strong>
        <#list links as link>
        <a href="${link.linkUrl}" target="_blank" title="${link.linkName}">${link.linkName}</a>
        </#list>
</div>
<#else>
<div class="link"></div>
</#if>




//多list显示
//ftl:
<html>
	<head>
		<title></title>
	</head>
	
	<body>
		<#if articles?size !=0>
		<div id="div1">
			<#list articles as article>
				${article.title}<br>
			</#list>
			</div>
		<#else>
		</#if>	
	
		
		<h1><p>第二个list显示</p></h1>
		<div>你们好,good freemarker</div>
		
			<#if articles1?size !=0>
			<div id = "div2">
				<#list articles1 as article1>
					${article1.title}<br>
				</#list>
			</div>
		<#else>
		</#if>
	

	</body>
</html>
============================

public void createLists() throws IOException, TemplateException{
		cfg.setDirectoryForTemplateLoading(new File("D:/eclipseWorkspace/baby/test/com/baby/freemark/")); 
		List<Article> articles = new ArrayList<Article>();
		for (int i = 0; i < 5; i++) {
			Article article = new Article();
			article.setTitle("article 1 list title 第 " + i);
			articles.add(article);
		}
		
		List<Article> articles1 = new ArrayList<Article>();
		for (int i = 0; i < 10; i++) {
			Article article = new Article();
			article.setTitle("article 2 list title 第 " + i);
			articles1.add(article);
		}
		Map map = new HashMap();
		map.put("articles", articles);
		map.put("articles1", articles1);
		cfg.setDirectoryForTemplateLoading(new File("D:/eclipseWorkspace/baby/test/com/baby/freemark/")); 
		Template t = cfg.getTemplate("listTemplate.ftl"); 
		File htmlFile = new File(path + "list.html");   
	    Writer out = new BufferedWriter(new OutputStreamWriter(   
	                new FileOutputStream(htmlFile), "gbk"));
	     t.process(map, out);
	     out.flush();
	     out.close();
	}
分享到:
评论

相关推荐

    freemarker语法完整版

    Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...

    freemarker-2.3.31-API文档-中文版.zip

    赠送jar包:freemarker-2.3.31.jar; 赠送原API文档:freemarker-2.3.31-javadoc.jar; 赠送源代码:freemarker-2.3.31-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.31.pom; 包含翻译后的API文档:...

    freemarker-2.3.30-API文档-中文版.zip

    赠送jar包:freemarker-2.3.30.jar; 赠送原API文档:freemarker-2.3.30-javadoc.jar; 赠送源代码:freemarker-2.3.30-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.30.pom; 包含翻译后的API文档:...

    安装freemarker插件(freemarker的eclipse插件)

    安装freemarker插件(freemarker的eclipse插件) a) 首先下载 freemarker-ide-0.9.14.zip(在这里不用下载了,附件中已经有了) b) 解压后:把hudson.freemarker_ide_0.9.14这个文件放到:eclipse\plugins下面 c) 发现...

    FreeMarker

    FreeMarker,FreeMarker

    超完整FreeMarker中文教程,代码

    什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................

    JAVA项目代码绘制PDF和通过freemarker动态生成PDF

    3. freemarker(FreemarkerUtils) 对于没有使用宏、函数等word、excel,需要按模板动态生成word、excel、html,只需要一个freemarker,先将word、excel、html等另存为**xml**,即可使用模板动态生成文件,目前xlsx是...

    freemarker模板技术生成复杂word文档---解决了编码问题

    大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出‘.doc’ word文档。经测试这样方式生成的word文档完全符合office标准,...

    freemarker-2.3.30-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.30.jar; 赠送原API文档:freemarker-2.3.30-javadoc.jar; 赠送源代码:freemarker-2.3.30-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.30.pom; 包含翻译后的API文档:...

    FreeMarker_Programmer Guide

    FreeMarker

    Java项目中利用Freemarker模板引擎导出--生成Word文档

    基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。 在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring ...

    eclipse的freemarker插件

    freemarker格式化的eclipse插件。用于freemarker的格式化。

    freemarker替换变量实例

    freemarker替换变量实例

    超强freemarker使用总结,有示例有讲解,可做快速查询手册!!

    在开发web项目的时候使用到的页面展现技术,它并...总体,该文档能够提供所有常用的freemarker操作,示例和简略的讲解可以让人一下子就能上手,效率极高。 适合做快速查阅册子,同时也非常适合初学者和骨灰开发者使用。

    freemarker-2.3.23-API文档-中文版.zip

    赠送jar包:freemarker-2.3.23.jar; 赠送原API文档:freemarker-2.3.23-javadoc.jar; 赠送源代码:freemarker-2.3.23-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.23.pom; 包含翻译后的API文档:...

    FreeMarker中文文档.pdf下载

    FreeMarker中文文档.pdf FreeMarker入门必修

    用Freemarker生成word文档

    2.将xml中需要动态修改内容的地方,换成freemarker的标识符 添加图片 如果你需要在word中添加图片,那你就在第一步制作模板时,加入一张图片占位,然后打开xml文档,可 以看到如下的一片base64编码后的代码: ...

    hudson.freemarker_ide_0.9.14

    FreeMarker在Eclipse安装 1.将插件hudson.freemarker_ide_0.9.14文件夹放到eclipse下的plugins文件夹下 按理,这样的话,重启eclipse就应该解决了 但是不成 因为hudson.freemarker_ide_0.9.14文 件夹下的...

Global site tag (gtag.js) - Google Analytics