Java: FreeMarker的配置和使用
作者:网络转载 发布时间:[ 2015/2/3 13:51:49 ] 推荐标签:Java 软件开发 配置
这个模板非常简单。只在h1标签中方了一个需要数据“user”的Freemarker标签。这个“user”数据是在之后的HashMap提供的。
然后添加Controller,也是在web.xml配置文件中指定的example.Test类。首先在项目的根目录下,创建一个“example”的包,然后在里面添加一个Servlet。Servlet的名称设定为Test。名字可以随意起,但是在配置文件中的必须和这个类的名称是一致的。
packageexample;
importjava.io.*;
importjava.util.*;
importjavax.servlet.ServletException;
importjavax.servlet.http.*;
importfreemarker.template.*;
publicclassTestextendsHttpServlet{
privateConfiguration_config;
publicvoidinit(){
//初始化Freemarker配置
_config=newConfiguration(Configuration.VERSION_2_3_0);
//设置Freemarker模板文件的位置
_config.setServletContextForTemplateLoading(this.getServletContext(),"templates");
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//数据
Maproot=newHashMap();
root.put("user","Jack");
//获取模板
Templatet=_config.getTemplate("Test.ftl");
//准备输出,使用模板的编码作为本页的charset
response.setContentType("text/html;charset="+t.getEncoding());
PrintWriterout=response.getWriter();
try{
//在模板中加入动态数据
t.process(root,out);
}
catch(freemarker.template.TemplateExceptione){
thrownewServletException("处理Template模版中出现错误",e);
}
}
}
代码_config.setServletContextForTemplateLoading(this.getServletContext(),"templates");指定了模板文件所在的目录,以后的全部的Controller的模板文件都是从这个地方找了,也是前文指定的在WebRoot下创建的templates目录。在后面的代码Templatet=_config.getTemplate("Test.ftl");中指定了具体的模板文件是哪一个。Maproot=newHashMap();root.put("user","Jack");指定了具体的数据Model。这个key值必须和在模板中设定的${user}一致。后在方法t.process(root,out);中,把数据添加到模板中。通过这几步以后,MVC的几个部分结合到了一起。
后在index.jsp中添加一个超链接:<ahref="Hello.do">Freemarkerfirstpage</a>。整个例子可以运行了。看那看效果吧。
Freemarker是一个功能十分强大的模板引擎。不只有文中介绍的简单的数据的替换,还有指令、宏等功能。非常好用。

sales@spasvo.com