1.引入freemarker.jar包
2.在项目目录下建立模板目录:templates
3.在templates目录下,建立a.ftl模板文件,内容如下:
hello,freemarker,我叫${user},这是我的第一个freemarker应用!!! ------------------------ if语句测试: ${user},<#if user=="张三">你好!</#if> ------------------------ if else 语句测试: <#if random gt 60> <#-- 不使用>,因为大部分时候,freemarker会把>解释成标签结束! --> ${random}:及格! <#else> ${random}:不及格! </#if> ------------------------ if else if else语句测试: <#if random gte 90> ${random}:优秀! <#elseif random gte 80> ${random}:良好! <#else> ${random}:一般! </#if> ------------------------ list指令测试: <#list lst as address > ${address_index + 1}.${address.country}==>${address.city}<#if address_has_next>,</#if> </#list> ------------------------ include指令测试: <#include "include.txt" /> ------------------------ 自定义宏指令(macro指令)测试: <#macro m1> <#--定义指令m1 --> <b>aaabbbccc</b> <b>dddeeefff</b> </#macro> <@m1 /> <#--调用上面的宏指令 --> ------------------------ 自定义带参的宏指令测试: <#macro m2 a b c > ${a}--${b}--${c} </#macro> <@m2 a="张三" b="李四" c="王五" /> ------------------------ nested指令测试: <#macro border> <table border=4 cellspacing=0 cellpadding=4> <tr> <td> <#nested> </td> </tr> </table> </#macro> <@border >表格中的内容!</@border> ------------------------ 测试命名空间:在a.ftl文件中引入b.ftl,从而可以使用b.ftl中定义的宏和变量: <#import "b.ftl" as bb /> <@bb.copyright date="2010-2013" /> ${bb.mail} <#assign mail="my@163.com" /> ${mail} <#assign mail="my@163.com" in bb /> ${bb.mail}
4.include.txt
这个是包含的文件include.txt中的内容!
5.b.ftl
<#macro copyright date> <p>Copyright (C) ${date} 我的网址.</p> </#macro> <#assign mail = "zhangsan@163.com">
6.Address.java
package com.test.freemarker; public class Address { private String country; private String city; public Address(String country, String city) { super(); this.country = country; this.city = city; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } }
7.建立com.test.freemarker包,然后建立FreeMarkerTest.java文件,内容如下:
package com.test.freemarker; import java.io.File; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class FreeMarkerTest { public static void main(String[] args) { try { // 创建freemarker配置实例 Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File("templates")); // 加载模板文件 Template t = cfg.getTemplate("a.ftl"); // 创建数据模型 Map<String, Object> data = new HashMap<String, Object>(); data.put("user", "张三"); data.put("random", new Random().nextInt(100)); List<Address> list = new ArrayList<Address>(); list.add(new Address("中国","北京")); list.add(new Address("中国","上海")); list.add(new Address("美国","纽约")); data.put("lst", list); // 显示生成的数据 Writer out = new OutputStreamWriter(System.out); t.process(data, out); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } } }
8.编译和运行freeMarkerTest.java文件,控制台打印:
hello,freemarker,我叫张三,这是我的第一个freemarker应用!!! ------------------------ if语句测试: 张三,你好! ------------------------ if else 语句测试: 52:不及格! ------------------------ if else if else语句测试: 52:一般! ------------------------ list指令测试: 1.中国==>北京, 2.中国==>上海, 3.美国==>纽约 ------------------------ include指令测试: 这个是包含的文件include.txt中的内容! ------------------------ 自定义宏指令(macro指令)测试:
<b>aaabbbccc</b> <b>dddeeefff</b>
------------------------ 自定义带参的宏指令测试:
张三--李四--王五 ------------------------ nested指令测试:
<table border=4 cellspacing=0 cellpadding=4> <tr> <td> 表格中的内容! </td> </tr> </table>
------------------------ 测试命名空间:在a.ftl文件中引入b.ftl,从而可以使用b.ftl中定义的宏和变量: <p>Copyright (C) 2010-2013 我的网址.</p> zhangsan@163.com my@163.com my@163.com |
相关推荐
在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...
总结来说,"Servlet + Freemarker 入门练习"涉及以下几个关键知识点: 1. **Servlet**:Java 服务器端编程,处理 HTTP 请求,实现业务逻辑。 2. **Freemarker**:模板引擎,分离视图和逻辑,生成动态 HTML。 3. **...
通过学习这9页的Freemarker入门教程,你将能够理解和应用基本的Freemarker语法,进一步深入学习,你可以掌握更高级的特性,成为熟练的Freemarker使用者,从而更好地服务于Web开发工作。在实践中不断探索,你会发现...
本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...
在"JFinal+Maven+FreeMarker入门实例"中,我们将看到如何配置和使用这些工具。首先,我们需要在项目根目录下创建一个`pom.xml`文件,这是Maven项目的配置文件。在这里,我们需要列出所有依赖项,包括JFinal和...
FreeMarker与Struts2整合的入门Demo 直接布署在Servlet容器运行
通过深入学习"Freemarker入门学习资料"中的内容,你可以掌握Freemarker的基本使用、语法特性、与Spring的整合方法,以及最佳实践,从而有效地进行Web应用的视图层开发。记得实践中不断探索和优化,提升模板设计和...
### FreeMarker入门知识详解 #### 一、FreeMarker概述 FreeMarker是一款强大的模板引擎,它以Java语言编写,主要用于生成动态HTML网页,特别是在MVC(Model-View-Controller)架构中,作为视图组件,负责将模型...
这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...
### Freemarker 入门详解 #### 一、Freemarker 概述 Freemarker 是一款功能强大的模板引擎,主要用于生成动态的 HTML 页面以及其他格式的文档。它将模板设计与后端逻辑分离,使得前端设计师可以专注于页面布局与...
本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...
以下是对`freemarker入门Demo`相关知识点的详细说明: 1. **严格的MVC分离**: Freemarker模板引擎不支持编写Java代码,这意味着开发者可以在模板文件中专注于展示逻辑,而将数据处理和业务逻辑保留在控制器和服务...
本教程将通过一个基础的"freemarker入门demo",帮助你理解Freemarker的工作原理和基本用法。 首先,让我们了解一下Freemarker模板语言(FTL)。FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言...
在上述的Freemarker入门实例中,我们看到一个简单的`product.ftl`模板文件,其中包含HTML结构以及`${...}`包围的Freemarker表达式。这些表达式在运行时会被对应的数据模型中的值替换。例如,`${user}`和`${...
这是一个基础入门案例,旨在帮助初学者快速理解这两个技术的结合。 Spring Boot是一个由Pivotal团队开发的Java框架,它简化了Spring应用的初始搭建以及开发过程。它内置了各种默认配置,使得开发者可以快速地创建...
本指南主要针对FreeMarker 2.3.23版本,提供详细的API文档和入门教程。 在开始之前,你需要了解FreeMarker的基本概念:模板(Template)和数据模型(Data Model)。模板是包含静态文本和变量的文件,变量会被数据...
本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...
- **模板(Template)**:Freemarker的工作基于模板,模板是纯文本文件,其中包含静态文本和Freemarker指令。这些指令用于插入由应用程序提供的数据。 - **数据模型(Data Model)**:数据模型是应用程序传递给...
本入门手册将帮助你了解FreeMarker的基本概念、语法以及如何在实际项目中运用。 1. **基本概念** - **模板语言**:FreeMarker是模板驱动的,它不直接处理数据,而是通过模板和数据模型结合来生成最终输出。 - **...