Freemarker模板管理实例

 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)

 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>

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值