导入依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
spring配置文件 配置
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
<property name="defaultEncoding" value="UTF-8" />
</bean>
<context:property-placeholder location="classpath:freemarker.properties"/>
freemarker.properties
# 静态文件输出的目录
out_put_path=D:/IdeaProjects/itheima/health--parent/health-mobile/src/main/webapp/pages
ServiceImpl 使用
private void generateMobileStaticHtml() {
List<Setmeal> setmealList = this.findAll();
generateMobileSetmealListHtml(setmealList);
generateMobileSetmealDetaiHtml(setmealList);
}
private void generateMobileSetmealDetaiHtml(List<Setmeal> setmealList) {
for (Setmeal setmeal : setmealList) {
HashMap<String, Object> dataMap = new HashMap<>();
dataMap.put("setmeal", this.findAllByID(setmeal.getId()));
this.generateHtml("mobile_setmeal_detail.ftl", "setmeal_detail_" + setmeal.getId() + ".html", dataMap);
}
}
private void generateMobileSetmealListHtml(List<Setmeal> setmealList) {
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("setmealList", setmealList);
this.generateHtml("mobile_setmeal.ftl", "m_setmeal.html", dataMap);
}
private void generateHtml(String templateName, String htmlPageName, Map<String, Object> dataMap) {
Configuration configuration = freeMarkerConfigurer.getConfiguration();
BufferedWriter bufferedWriter = null;
try {
Template template = configuration.getTemplate(templateName);
File file = new File(outPutPath + "/" + htmlPageName);
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
template.process(dataMap, bufferedWriter);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bufferedWriter != null) {
try {
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}