Freemarker |
FreeMarker 是一個用 Java 語言編寫的模板引擎,它基於模板來生成輸出各種文件。它不僅可以用作表現層的實現技術,而且還可以用於生成 XML,html 或 Java 等。
創建freemarker-test模塊,引入依賴
freemarker-test/pom.xml:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.26-incubating</version>
</dependency>
創建一個簡單的創建模板文件freemarker-test/src/main/resources/ftl/hello.ftl:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>FreeMarker示例</title>
<meta name="Copyright" content="All Rights Reserved"/>
</head>
<body>
<#--我只是一個註釋,我不會有任何輸出 -->
<h1>${name},你好。${message}!</h1>
</body>
</html>
編碼步驟
第一步:創建一個 Configuration 對象,直接 new 一個對象,構造方法的參數就是 freemarker的版本號。
第二步:設置模板文件加載的基礎路徑。
第三步:設置模板文件使用的字符集。(一般就是 UTF-8)
第四步:加載一個模板文件產生模板對象。
第五步:創建一個模板使用的數據模型,可以是 pojo 也可以是 map,一般是 Map。
第六步:調用模板對象的 process 方法填充模版,輸出文件。
在freemarker-test/src/main/test/cn.itcast.freemarker包下,編寫測試類FreeMarkerTest.java:
@Test
public void test() throws Exception{
/** 創建配置信息對象 */
Configuration configuration = new
Configuration(Configuration.VERSION_2_3_26);
/** 設置模板文件加載的基礎路徑 */
configuration.setClassForTemplateLoading(FreeMarker01.class, "/ftl");
/** 設置默認編碼 */
configuration.setDefaultEncoding("UTF-8");
/** 加載模板文件,產生模板對象 */
Template template = configuration.getTemplate("hello.ftl");
/** 定義數據模型 */
Map<String,Object> dataModel = new HashMap<>();
dataModel.put("name", "小劉");
dataModel.put("message", "歡迎來到freemarker!");
/** 填充模板,輸出文件 */
template.process(dataModel,
new FileWriter("C:\\Users\\Administrator\\Desktop\\html\\hello.html"));
}