`
gcgmh
  • 浏览: 356001 次
  • 性别: 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标签

    本篇将深入探讨如何自定义FreeMarker标签,以扩展其功能并适应特定项目需求。 首先,理解FreeMarker的默认标签语法至关重要。FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件...

    eclipse的freemarker插件

    而Freemarker则是一种轻量级的、基于模板的Java模板引擎,常用于Web应用中的动态内容生成,比如JSP替代技术。它允许开发者将业务逻辑与页面展示分离,提高代码的可维护性和可读性。 "eclipse的freemarker插件"是指...

    FreeMarker

    FreeMarker的设计理念是将表现层(视图)和业务逻辑层(控制器)分离,从而实现MVC(Model-View-Controller)架构中的“View”部分。 FreeMarker的核心概念是模板文件,这是一种特殊的文本文件,其中包含可替换的...

    freemarker-2.3.23jar

    `freemarker-2.3.23.jar`是Freemarker库的一个版本,发布于2.3.23,这个版本可能包含了对早期版本的一些改进、新功能或bug修复。 Freemarker的核心概念是模板语言,它是一种声明式的编程方式,允许开发者编写不包含...

    freemarker解析成pdf

    1. **创建模板**:在Freemarker中,我们需要创建一个`.ftl`(Freemarker Template Language)文件,其中包含静态文本和动态占位符。动态占位符由${}或#{}包裹,用于插入数据模型中的值。例如,`${title}&lt;/h1&gt;`会将...

    freemarker-ide插件

    Freemarker-IDE是一款专为开发人员设计的Eclipse插件,它主要针对Freemarker模板语言提供了强大的支持。在Eclipse这样的集成开发环境中,这款插件能够显著提升开发人员编写和调试`.ftl`(FreeMarker Template ...

    freemarker-2.3.28.jar

    这个"freemarker-2.3.28.jar"是Freemarker库的一个具体版本,版本号为2.3.28,它是Java的一个可执行的JAR(Java Archive)文件,用于在Eclipse集成开发环境中作为插件使用。 在Freemarker的2.3.28版本中,我们可以...

    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文档:...

    FreeMarker2.3.23官方中文文档

    2.3.23是FreeMarker的一个稳定版本,这个版本的官方中文文档提供了全面的指导和说明,帮助开发者更好地理解和使用这个模板语言。 在FreeMarker的核心概念中,它是一个基于数据驱动的模板语言。这意味着,开发者不...

    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文档:...

    Velocity 和 FreeMarker区别

    ### Velocity与FreeMarker的区别 在IT领域特别是Java开发中,模板引擎是不可或缺的一部分,它们用于将数据模型转换为HTML、PDF、Word文档等格式。在众多模板引擎中,Velocity和FreeMarker是两种非常受欢迎的选择。...

    模板:velocity和freemarker的比较

    Velocity和Freemarker模板技术比较 模板技术在现代软件开发中扮演着重要角色,而在目前最流行的两种模板技术中, Velocity 和 Freemarker 独占鳌头。在 WebWork2 中,我们可以随意选择使用 Freemarker 或 Velocity ...

    Freemarker简介及标签详解大全

    Freemarker 简介及标签详解大全 FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯 Java 编写。FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序。虽然 FreeMarker ...

    freemarker生成xml示例

    这个示例是关于如何使用Freemarker来生成XML文件,对于初学者来说,理解这个过程有助于掌握Freemarker的基本用法和XML的生成技巧。 在Java中,Freemarker与数据模型结合,通过模板文件生成输出。对于XML生成,首先...

    可视化div布局 生成freemarker模板

    本话题主要探讨的是如何利用可视化div布局来生成FreeMarker模板,并结合Spring MVC 3框架进行应用。下面将详细阐述这些概念及其相关知识点。 1. **FreeMarker模板引擎**:FreeMarker是一个开源的Java模板引擎,它...

    通过freemarker模板 生成PDF

    本主题将深入探讨如何利用Freemarker模板和wkhtmltox工具来实现这一功能。 **Freemarker模板** 是一个强大的Java模板引擎,用于动态生成文本输出,如HTML、XML或PDF。它支持变量替换、控制结构(如if/else)和复杂...

    FreeMarker通用的分页

    FreeMarker提供了一种灵活且强大的方式来处理动态内容,尤其适用于Web开发中的视图层。在FreeMarker中实现通用的分页功能是提高Web应用程序性能和用户体验的重要一环。 ### FreeMarker通用分页知识点解析 #### 1. ...

    freemarker Demo 适用于freemarker初学

    Freemarker是一个强大的模板引擎,常用于JavaEE应用中的视图层处理,尤其与Struts2等MVC框架配合使用,能实现灵活的动态页面渲染。这个"freemarker Demo"是一个适合初学者的示例项目,旨在帮助新接触Freemarker的...

    FreeMarker中文文档.pdf下载

    根据提供的文件信息,我们可以深入探讨FreeMarker的相关知识点及其在网页模板设计中的应用。FreeMarker是一种用Java编写的模板引擎,其主要用途在于帮助开发者高效地生成动态内容,尤其是在Web开发领域有着广泛的...

Global site tag (gtag.js) - Google Analytics