推荐书籍 百度云盘 密码: c3m9html
本书为<FreeMarker 2.3.19 中文版手册>,包含了freemarker开发得方方面面,能够做为开发freemarker的字典书籍,固然总共两百多页,也能够耐下心来慢慢看.前端
我的认为在开发的过程使用freemarker能够更好的统一前端,作到很好的代码复用java
目前只须要相应jar包以及jdk环境 jar 密码: pyz2web
目录结构spring
component.ftl 主要用于测试自定义指令,hello.ftl为进入模板,footer.ftl用于测试include包含指令.话补多少,直接贴代码.(详细操做能够参考书籍)mvc
public static void main(String[] args) throws IOException, TemplateException { //建立Freemarker配置实例 Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File("src/templates")); //建立数据模型 Map<String,Object> root = new HashMap<String,Object>(); root.put("user1", "hsm"); root.put("user2", "xiaoming"); List<String> lists=new ArrayList<String>(); lists.add("xiaohua"); lists.add("xiaohong"); lists.add("miss"); root.put("lists",lists); //加载模板文件 Template t1 = cfg.getTemplate("hello.ftl"); //显示生成的数据,//将合并后的数据打印到控制台 Writer out = new OutputStreamWriter(System.out); t1.process(root, out); out.flush(); }
目录结构测试
其余其实和通常的web工程相似,主要看Servlet的内容是如何解析的.net
package com.hsm; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; /** * @author hsm * freemarker解析 */ @WebServlet("/HelloServlet") public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; private Configuration cfg; public HelloServlet() { super(); } public void init() { //初始化FreeMarker配置 //建立一个Configuration实例 cfg =new Configuration(); //设置FreeMarker的模版文件位置 cfg.setServletContextForTemplateLoading(getServletContext(),"WEB-INF/ftl"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建数据模型 Map<String, String> map =new HashMap<String, String>(); //放入对应数据key value map.put("user","Zheng"); //取得模版文件 Template t =cfg.getTemplate("hello.ftl"); //开始准备生成输出 //使用模版文件的charset做为本页面的charset //使用text/html MIME-type response.setContentType("text/html; charset=" + t.getEncoding()); PrintWriter out = response.getWriter(); //合并数据模型和模版,并将结果输出到out中 try { t.process(map,out);//用模板来开发servlet能够只在代码里面加入动态的数据 } catch(TemplateException e) { throw new ServletException("处理Template模版中出现错误", e); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
推荐博客 大致知识相同,主要是配置spring mvc的视图解析器code
后续更新.....