1.宏学习
定义:
<#macro prom pid>
<#if pid=="1">
。。。。。。。。。。。。。。
</#if>
</#macro>
其它页面中引入:
<#import "/products/choice_size.html" as productSize>
在页面中使用:
<@productSize.prom pid="${product.templateId!}"/>
2.时间转换
<#if r[0]??>${r[0].createTime?string("yyyy-MM-dd HH:mm:ss")!}</#if>
3.freemarker操作
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class Test {
public static void main1(String[] args) throws Exception {
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("bin")); //设置读取模板文件的目录
Template t = cfg.getTemplate("a.html"); //读取文件名为Test.ftl的模板
Map root = new HashMap(); //存储数据
Writer out = new OutputStreamWriter(new FileOutputStream("Test.html"), "UTF-8"); //输出流
t.process(root,out);
System.out.println("Create successfully!");
}
public static void main2(String[] args)throws Exception{//freemarker获取生成后的字符串
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("bin")); //设置读取模板文件的目录
Template t = cfg.getTemplate("a.html");
Map root = new HashMap(); //存储数据
Writer writer = new StringWriter();
t.process(root,writer);
writer.flush();
writer.close();
System.out.println(writer.toString());
}
public static void main3(String[] args)throws Exception{//根据字符串生成一个经过处理后的字符串
Configuration cfg = new Configuration();
StringTemplateLoader loader = new StringTemplateLoader();
cfg.setTemplateLoader(loader);
loader.putTemplate("default", "wwwwwwwwwwwwwwwwwwwww");
Map root = new HashMap(); //存储数据
Template template = cfg.getTemplate("default");
Writer writer = new StringWriter();
template.process(root, writer);
System.out.println(writer.toString());
}
}
html页面
<#macro greet person,website>
Hello ${person}! Your Website is ${website}.
</#macro>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<@greet person="Sfeve" website="http://sfeve.iteye.com"/>
</body>
</html>
编码的问题:
解决方法:
A.Configuration freemarkerCfg = new Configuration();
freemarkerCfg.setDefaultEncoding("UTF-8");
Template template = freemarkerCfg.getTemplate(templateFileName);
B. template.setEncoding("UTF-8");
C. Writer out = new OutputStreamWriter(new FileOutputStream("Test.html"),"UTF-8");
分享到:
相关推荐
本压缩包集合了丰富的Freemarker学习资源,涵盖从基础到进阶的各种知识点,以下是这些文档中可能包含的详细内容: 1. **Freemarker中文手册.pdf**: 这份手册通常会详细介绍Freemarker的基本概念,如模板语言、...
### FreeMarker 学习资料详解 #### 一、FreeMarker 模板文件构成 FreeMarker 是一种用于生成动态文档的工具,它通过结合固定的文本、注释、变量(插值)以及指令(FTL标签)来创建动态内容。具体而言,FreeMarker ...
Freemarker的核心思想是将数据模型与模板结合,通过模板来呈现准备好的数据。 在开始使用Freemarker之前,你需要先下载相关的jar包。你可以访问FreeMarker的官方网站...
这个“freemarker学习例子”应该包含了一些基础到进阶的Freemarker用法,帮助初学者快速上手。 在Freemarker中,主要涉及以下几个核心概念: 1. **模板(Templates)**:模板是Freemarker的核心,它是HTML或其他文本...
在快速入门中,我们看到FreeMarker的基本工作原理是通过模板中的特定指令,如`${...}`,将动态数据插入到静态模板中。例如,以下模板展示了如何欢迎用户并显示最新产品的信息: ```html <title>Welcome! <h1>...
这篇“Freemarker学习笔记一【乱码解决】”将指导我们如何解决这个问题。 首先,我们需要了解乱码的常见原因。在Java Web开发中,乱码通常与以下因素有关: 1. **文件编码**:Freemarker模板文件(.ftl)的编码...
Freemarker学习笔记可以帮助初学者了解,快速掌握Freemarker
FreeMarker 学习手册 详细介绍FreeMarker模板技术的手册
### FreeMarker 学习笔记知识点总结 #### 一、FreeMarker 概览 FreeMarker 是一个用 Java 编写的模板引擎,它可以帮助开发者快速生成 HTML 页面或其他格式的文档。其核心概念包括模板、数据模型以及如何将两者结合...
下面,我们将深入探讨FreeMarker的基础知识、应用场景以及如何进行学习。 1. **基础概念** - **模板**:FreeMarker的核心是模板,它是由开发者编写的HTML或XML文件,其中嵌入了特定的FreeMarker语法,用于动态生成...
在本篇文章中,我们将深入探讨FreeMarker的学习要点,包括其基本概念、语法以及实际应用。 一、基本概念 1. 模板(Template):FreeMarker的中心是模板文件,它是一种特殊的文本文件,包含固定文本和变量。变量是由...
提供的"FreeMarker相关学习文档"可能包括模板语法详解、最佳实践、示例代码等内容,可以帮助初学者快速上手。通过阅读这些资料,你可以深入了解FreeMarker的各个方面,从而更好地利用这个强大的模板引擎。 总结,...
以下是对Freemarker中Sequence、Hash以及字符串操作函数的详细说明。 一、Sequence的内置函数: 1. `sequence?first`:返回Sequence的第一个元素,如果Sequence为空,返回null。 2. `sequence?last`:返回Sequence...
以下是对 Freemarker 学习内容的详细总结: 一、Sequence 内置函数 1. `sequence?first`: 获取序列的第一个元素。 2. `sequence?last`: 获取序列的最后一个元素。 3. `sequence?reverse`: 反转序列中的元素顺序。 4...