推薦書籍 百度雲盤 密碼: 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
後續更新.....