在这里我就不多讲freemarker是什么了,网上有书籍可以去看。
下面我就说下如何写第一个和freemarker相关的小例子,我也是在初学,文章的内容来自于视频,说的不好的地方还请大家见谅。
1,在myeclipse里创建一个web project,讲freemarker.jar和junit.jar放入lib文件夹下。
2,在src下创建一个ftl包。在包下创建一个新文件01.ftl。ftl文件内容:你好:${username}
3,创建一个java文件FreeMarkerUtil.java。代码如下:
package cn.app.freemarker;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
* FreeMarker初学第一步
* @author xuhf
*
*/
public class FreeMarkerUtil {
/**
* getTemplate("01.ftl")
* @param name
* @return
*/
public Template getTemplate(String name){
//通过freemarker的Configuration读取相应的ftl
Configuration conf = new Configuration();
//设置模板路径(去哪里读取相应的ftl模板文件)
conf.setClassForTemplateLoading(this.getClass(), "/ftl");
Template template;
try {
//在模板文件目录中找到名为name的文件
template = conf.getTemplate(name);
return template;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 输出
* @param name
* @param root
*/
public void print(String name,Map<String, Object> root){
//通过template可以将模板文件输出到相应的流中
Template template = this.getTemplate(name);
try {
template.process(root, new PrintWriter(System.out));
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4,创建测试类,代码如下:
package cn.app.junit;
import java.util.HashMap;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import cn.cntv.freemarker.FreeMarkerUtil;
/**
* 对freemarker进行测试类
* @author xuhf
*
*/
public class TestFreeMarker {
FreeMarkerUtil fu;
@Before
public void setUp(){
fu = new FreeMarkerUtil();
}
@Test
public void test01(){
//1,创建数据模型
Map<String, Object> root = new HashMap<String, Object>();
//2,为数据模型添加值
root.put("username", "测试");
//3,将数据模型和模板组合的数据输出到控制台
fu.print("01.ftl", root);
}
}
运行测试类,我们就可以在控制台看到输出:你好:测试。
这样,我们的第一个freemarker例子就完成了。