在Java中使用Freemarker主要是通過Freemarker模板引擎來生成動態(tài)的文本內(nèi)容,通常用于生成HTML頁面、郵件模板、配置文件等。以下是使用Freemarker的一般步驟:
創(chuàng)建Configuration對象:首先需要創(chuàng)建一個Configuration對象,用于加載Freemarker模板文件和設(shè)置相關(guān)配置。
獲取Template對象:通過Configuration對象的getTemplate方法獲取要使用的模板文件。
創(chuàng)建數(shù)據(jù)模型:創(chuàng)建一個Map對象,將要在模板中使用的數(shù)據(jù)放入其中。
合并模板和數(shù)據(jù):使用Template對象的process方法,將模板和數(shù)據(jù)模型合并生成最終的文本內(nèi)容。
輸出結(jié)果:將生成的文本內(nèi)容輸出到指定的輸出流或保存到文件中。
示例代碼如下:
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class FreemarkerExample {
public static void main(String[] args) {
Configuration configuration = new Configuration(Configuration.VERSION_2_3_31);
try {
configuration.setDirectoryForTemplateLoading(new File("src/main/resources/templates"));
Template template = configuration.getTemplate("hello.ftl");
Map<String, Object> dataModel = new HashMap<>();
dataModel.put("name", "World");
FileWriter fileWriter = new FileWriter("output.html");
template.process(dataModel, fileWriter);
fileWriter.close();
} catch (IOException | TemplateException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我們加載名為"hello.ftl"的模板文件,并將一個名為"name"的變量傳遞給模板。模板文件可以包含F(xiàn)reemarker的模板語法,用于控制生成的文本內(nèi)容。這樣就可以動態(tài)地生成內(nèi)容并輸出到文件中。