FreeMarkerTest:
1
import
java.io.BufferedWriter;
2
import
java.io.File;
3
import
java.io.FileOutputStream;
4
import
java.io.OutputStreamWriter;
5
import
java.io.Writer;
6
import
java.util.HashMap;
7
import
java.util.Locale;
8
9
import
freemarker.template.Configuration;
10
import
freemarker.template.Template;
11
12
public
class
FreeMarkerTest {
13
14
public
static
void
main(String[] args) {
15
FreeMarkerTest test
=
new
FreeMarkerTest();
16
test.getFile();
17
test.getFile(Locale.JAPAN);
18
}
19
20
public
void
getFile() {
21
Configuration freemarkerCfg
=
new
Configuration();
22
freemarkerCfg.setClassForTemplateLoading(
this
.getClass(),
"
/
"
);
23
freemarkerCfg.setEncoding(Locale.getDefault(),
"
UTF-8
"
);
24
Template template;
25
try
{
26
template
=
freemarkerCfg.getTemplate(
"
t.ftl
"
);
27
template.setEncoding(
"
UTF-8
"
);
28
File htmlFile
=
new
File(
"
t.html
"
);
29
Writer out
=
new
BufferedWriter(
new
OutputStreamWriter(
30
new
FileOutputStream(htmlFile),
"
UTF-8
"
));
31
HashMap propMap
=
new
HashMap();
32
propMap.put(
"
user
"
,
"
hermit
"
);
33
template.process(propMap, out);
34
out.flush();
35
}
catch
(Exception e) {
36
e.printStackTrace();
37
}
38
}
39
40
public
void
getFile(Locale loc) {
41
Configuration freemarkerCfg
=
new
Configuration();
42
freemarkerCfg.setClassForTemplateLoading(
this
.getClass(),
"
/
"
);
43
freemarkerCfg.setEncoding(Locale.getDefault(),
"
UTF-8
"
);
44
Template template;
45
try
{
46
template
=
freemarkerCfg.getTemplate(
"
t.ftl
"
,loc);
47
template.setEncoding(
"
UTF-8
"
);
48
File htmlFile
=
new
File(
"
t_
"
+
loc.getLanguage()
+
"
_
"
+
loc.getCountry()
+
"
.html
"
);
49
Writer out
=
new
BufferedWriter(
new
OutputStreamWriter(
50
new
FileOutputStream(htmlFile),
"
UTF-8
"
));
51
HashMap propMap
=
new
HashMap();
52
propMap.put(
"
user
"
,
"
hermit
"
);
53
template.process(propMap, out);
54
out.flush();
55
}
catch
(Exception e) {
56
e.printStackTrace();
57
}
58
}
59
60
}
61
import
java.io.BufferedWriter;
2
import
java.io.File;
3
import
java.io.FileOutputStream;
4
import
java.io.OutputStreamWriter;
5
import
java.io.Writer;
6
import
java.util.HashMap;
7
import
java.util.Locale;
8
9
import
freemarker.template.Configuration;
10
import
freemarker.template.Template;
11
12
public
class
FreeMarkerTest {
13
14
public
static
void
main(String[] args) {
15
FreeMarkerTest test
=
new
FreeMarkerTest();
16
test.getFile();
17
test.getFile(Locale.JAPAN);
18
}
19
20
public
void
getFile() {
21
Configuration freemarkerCfg
=
new
Configuration();
22
freemarkerCfg.setClassForTemplateLoading(
this
.getClass(),
"
/
"
);
23
freemarkerCfg.setEncoding(Locale.getDefault(),
"
UTF-8
"
);
24
Template template;
25
try
{
26
template
=
freemarkerCfg.getTemplate(
"
t.ftl
"
);
27
template.setEncoding(
"
UTF-8
"
);
28
File htmlFile
=
new
File(
"
t.html
"
);
29
Writer out
=
new
BufferedWriter(
new
OutputStreamWriter(
30
new
FileOutputStream(htmlFile),
"
UTF-8
"
));
31
HashMap propMap
=
new
HashMap();
32
propMap.put(
"
user
"
,
"
hermit
"
);
33
template.process(propMap, out);
34
out.flush();
35
}
catch
(Exception e) {
36
e.printStackTrace();
37
}
38
}
39
40
public
void
getFile(Locale loc) {
41
Configuration freemarkerCfg
=
new
Configuration();
42
freemarkerCfg.setClassForTemplateLoading(
this
.getClass(),
"
/
"
);
43
freemarkerCfg.setEncoding(Locale.getDefault(),
"
UTF-8
"
);
44
Template template;
45
try
{
46
template
=
freemarkerCfg.getTemplate(
"
t.ftl
"
,loc);
47
template.setEncoding(
"
UTF-8
"
);
48
File htmlFile
=
new
File(
"
t_
"
+
loc.getLanguage()
+
"
_
"
+
loc.getCountry()
+
"
.html
"
);
49
Writer out
=
new
BufferedWriter(
new
OutputStreamWriter(
50
new
FileOutputStream(htmlFile),
"
UTF-8
"
));
51
HashMap propMap
=
new
HashMap();
52
propMap.put(
"
user
"
,
"
hermit
"
);
53
template.process(propMap, out);
54
out.flush();
55
}
catch
(Exception e) {
56
e.printStackTrace();
57
}
58
}
59
60
}
61
t.ftl
<
html
>
<
head
>
<
title
>
Welcome!
</
title
>
<
META
HTTP-EQUIV
="Content-Type"
CONTENT
="text/html; charset=utf-8"
>
</
head
>
<
body
>
<
h1
>
Welcome ${user}!
</
h1
>
</
body
>
</
html
>
html
>
<
head
>
<
title
>
Welcome!
</
title
>
<
META
HTTP-EQUIV
="Content-Type"
CONTENT
="text/html; charset=utf-8"
>
</
head
>
<
body
>
<
h1
>
Welcome ${user}!
</
h1
>
</
body
>
</
html
>
t_zh_CN.ftl
<
html
>
<
head
>
<
title
>
欢迎!
</
title
>
<
META
HTTP-EQUIV
="Content-Type"
CONTENT
="text/html; charset=utf-8"
>
</
head
>
<
body
>
<
h1
>
你好 ${user}!
</
h1
>
</
body
>
</
html
>
html
>
<
head
>
<
title
>
欢迎!
</
title
>
<
META
HTTP-EQUIV
="Content-Type"
CONTENT
="text/html; charset=utf-8"
>
</
head
>
<
body
>
<
h1
>
你好 ${user}!
</
h1
>
</
body
>
</
html
>
freemarker支持多语言国际化,只要把模板名称安装资源文件的写法就可以了,也就是name_语言_国家地区.ftl
如果找不到对应的语言,就会用默认语言的模板。
顺便抱怨一下,freemarker对于空值的处理太霸道了,没有值你就写个空或者写KEY也可以啊,弄一堆出错信息在那。。。。。。。。。。。。。。