freeMarker自定义函数的使用
生活随笔
收集整理的這篇文章主要介紹了
freeMarker自定义函数的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 編寫函數
?
1 package com.freemarker.test;2
3 ?import java.text.SimpleDateFormat;
4 ?import java.util.Date;
5 import java.util.List;
6 import freemarker.template.TemplateMethodModel;
7 import freemarker.template.TemplateModelException;
8
9
10 public class SqlGetSysdateMethod implements TemplateMethodModel
11 {
12
13
14 public Object exec( List args ) throws TemplateModelException
15 {
16 //得到函數第一個參數,得到的字符串兩頭會有引號,所以replace
17 String datePattern=(args.get( 0 ).toString()).replace( "'", "" );
18
19 Date date = new Date();
20 SimpleDateFormat sdf =new SimpleDateFormat(datePattern);
21
22 return sdf.format( date );
23 }
24
25 } 附上一個官方文檔鏈接:http://freemarker.sourceforge.net/docs/ref_builtins.html
?
2.注冊與使用
有兩種方式:
(1).在模板文件中注冊,在模板中使用
<#assign getSysdate= "package?com.freemarker.test.SqlGetSysdateMethod"?new()>
<#assign curdate=?getSysdate("yyyy-MM-dd"t)/>
?(2).處理模板文件時注冊
關鍵代碼:
Map<String,Object> root=new HashMap<String, Object>();
root.put("getSysdate", new StringLengthMethod());
Configuration config=new Configuration();
File file=new File(templatePath);
//并加載模板文件
config.setDirectoryForTemplateLoading(file);
//設置包裝器,并將對象包裝為數據模型
config.setObjectWrapper(new DefaultObjectWrapper());
//獲取模板,并設置編碼方式,這個編碼必須要與頁面中的編碼格式一致
Template template=config.getTemplate(templateName,templateEncoding);
//合并數據模型與模板
template.process(root, out);
?
轉載于:https://www.cnblogs.com/ashu123/archive/2011/06/29/freeMarker_0.html
總結
以上是生活随笔為你收集整理的freeMarker自定义函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WWDC 2011 苹果全球开发者大会【
- 下一篇: Android获取手机短信