思考思路
基础使用目的,替换
格
式
数
据
:
可
以
是
使
用
正
则
表
达
式
或
者
f
r
e
e
m
a
r
k
e
r
替
换
;
1.
F
r
e
e
M
a
r
k
替
换
时
候
{}格式数据:可以是使用正则表达式或者freemarker替换; 1.FreeMark替换时候
格式数据:可以是使用正则表达式或者freemarker替换;1.FreeMark替换时候{name}->name 左侧
n
a
m
e
是
模
板
数
据
的
内
容
,
右
侧
n
a
m
e
是
传
参
使
用
的
n
a
m
e
值
备
注
:
研
究
一
下
f
r
e
e
m
a
r
k
源
码
看
一
下
n
a
m
e
值
是
否
可
以
改
为
{name}是模板数据的内容,右侧name是传参使用的name值 备注:研究一下freemark源码看一下name值是否可以改为
name是模板数据的内容,右侧name是传参使用的name值备注:研究一下freemark源码看一下name值是否可以改为{name}
package demo01;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class Test02 {
public static void main(String[] args) {
Configuration cfg = new Configuration();
StringTemplateLoader loader = new StringTemplateLoader();
cfg.setTemplateLoader(loader);
cfg.setClassicCompatible(true);
String templateSource = "name:${user};URL:${url};uname:${name}";
loader.putTemplate("crd", templateSource);
Map<String, String> map = new HashMap<String, String>();
map.put("user", "crd");
map.put("url", "www.baidu.com");
map.put("name", "baidu");
try {
Template template = cfg.getTemplate("crd");
StringWriter writer = new StringWriter();
template.process(map, writer);
System.out.println(writer.toString());
template.process(map, new OutputStreamWriter(System.out));
} catch (Exception e) {
e.printStackTrace();
}
}
}
maven 依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>