freemarker的使用:
1、拷贝freemarker.jar包到类路径即可(struts2中freemarker-2.316是必须引入的jar包)
2、Freemarker非常容易使用,定义好模版之后,编程创建对象模型,并将数据
模型与模版结合产生输出即可
3、Freemarker的关键在于模版文件的编写
测试:
1、 定义模板文件:(目录为E:/test)
test.ftl:
输出模板中的信息:${abc}
包含其他模板文件:<#include "test1.ftl">
Test1.ftl:
test11111.ftl:${abc}
2、 测试freemarker类:(引入相应jar)
[java] view plaincopy
public class TestFreeMarker {
@Test
public void testFreeMarker() {
String dir = "E:/test";
try {
Configuration cfg = new Configuration();
//定义从哪里加载模板文件
cfg.setDirectoryForTemplateLoading(new File(dir));
//定义从哪里获取模板:FreeMarkerManager.class所在的包下的templates包(文件夹)
//cfg.setTemplateLoader(new ClassTemplateLoader
// (FreeMarkerManager.class,"templates"));
//定义对象包装器
cfg.setObjectWrapper(new DefaultObjectWrapper());
//定义异常处理器
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
//定义数据模型
Map root = new HashMap();
root.put("abc", "hello,fled");
//通过freeMarker解释模板,首先需要获得template
Template template = cfg.getTemplate("test.ftl");
//定义解释完模板后的输出
PrintWriter printWriter = new PrintWriter(
new BufferedWriter(
new FileWriter(dir+"/out.txt")
)
);
//解释模板
template.process(root, printWriter);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
3、 执行测试类,打开输出文件查看结果:
输出结果为:
test.ftl:
输出模板中的信息:hello,fled
包含其他模板文件:test11111.ftl:hello,fled
4、 带格式的循环等模板文件示例;
<table class="tableEdit" style="width:580px;" cellspacing="0" border="0" cellpadding="0">
<#assign i=0>
<#list form.fields as field>
<#if field_index % 2 = 0>
<#assign i = i+1>
<tr>
</#if>
<td class="tdEditLabel" >${field.fieldLabel}</td>
<td class="tdEditContent"><#include "${field.fieldInput.template}">
<#if i == 0 || !field_has_next>
<#assign i = 0>
</tr>
</#if>
</#list>
</table>
Freemarker模板管理实例
转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
实例带你了解GaussDB的索引管理
通过实际例子深入研究GaussDB数据库的索引管理。
子节点 数据 数据库 GaussDB数据库 索引管理 -
一个简洁、干净的中后台管理模板
nova-admin —— 一个基于Vue3、Vite5、Typescript、Naive UI, 简洁干净后台管理模板。
后台管理 后台管理模板 vue node.js npm -
freemarker Template process 模板字符 freemarker ftl模板
一、前言上一篇 提倡大家多去从官方文档学习技术,没有讲到具体的实践,本篇就拿一个案例具体的说一说,就是FreeMarker,选择这个框架没什么特别的含义,最近要用,就拿这个做个典型。二、套路上篇文章最后说到技术学习没有套路,无招胜有招,无招即是有招,解读一下实际上就是说 本身还是有些招式套路,但是要灵活运用,不要什么都往上套,应该忘掉固有的套路,让其化为你的一种本能,见招拆招。 下面就介绍一种常规
freemarker ftl模板 freemarker 使用数据字典 freemarker 去掉最后一个逗号 freemarker的测试结果框架 javaapi文档