freemarker開發指南

推薦書籍 百度雲盤 密碼: c3m9html

1. 前言

本書爲<FreeMarker 2.3.19 中文版手冊>,包含了freemarker開發得方方面面,能夠做爲開發freemarker的字典書籍,固然總共兩百多頁,也能夠耐下心來慢慢看.前端

我的認爲在開發的過程使用freemarker能夠更好的統一前端,作到很好的代碼複用java

2. 開發所需環境

目前只須要相應jar包以及jdk環境 jar 密碼: pyz2web

2.1. java中直接使用模板開發

目錄結構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();
	}

2.2 web中使用使其前端開發引擎

目錄結構測試

輸入圖片說明

其餘其實和通常的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);
	}
}

2.3 使用spring mvc配置freemarker解析器

推薦博客 大致知識相同,主要是配置spring mvc的視圖解析器code

後續更新.....
相關文章
相關標籤/搜索