FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生
成输出文本(HTML 网页、电子邮件、配置文件、源代码等)的通用工具。 它不
是面向最终用户的,而是一个 Java 类库,是一款程序员可以嵌入他们所开发产
品的组件。
FTL代表FreeMarker模板语言
public void test() throws Exception {
// 创建配置对象
Configuration configuration = new Configuration(Configuration.getVersion());
// 设置默认生成文件编码
configuration.setDefaultEncoding("utf-8");
// 设置模板路径
configuration.setClassForTemplateLoading(FreemarkerTest.class, "/ftl");
// 获取模板
Template template = configuration.getTemplate("test.ftl");
// 加载数据
Map<String, Object> dataModel = new HashMap<>();
dataModel.put("name", "传智播客");
dataModel.put("message", "欢迎使用 Freemarker。");
// 创建输出对象
FileWriter fileWriter = new FileWriter("D:\\itcast\\test\\test.html");
// 渲染模板和数据
template.process(dataModel, fileWriter);
// 关闭输出
fileWriter.close();
}
一些常见的符号说明:
${ }插值;只能输出数值、日期或者字符串,其它类型不能输出。
<#freemarker 命令
<#-- 注释 -->
<@使用自定义命令
??是判断对象是否存在
?函数调用
<#assign name=value> 此指令用于在页面上定义一个变量。
<#include path> path 参数可以是如 "foo.ftl" 和 "../foo.ftl" 一样的相对路径,或者是如
"/foo.ftl" 这样的绝对路径
导入依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
springmvc.xml整合freemarker
<!--整合freemarker-->
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="defaultEncoding" value="utf-8"/>
<!--模板路径-->
<property name="templateLoaderPath" value="/views"/>
</bean>
<!--配置freemarker视图解析器-->
<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value="ftl"/>
<property name="contentType" value="text/html;charset=utf-8"/>
</bean>
<!--静态页面存放地址ITEM_HTML_PATH-->
<context:property-placeholder location="classpath:properties/page.properties"/>
导入ftl模板
web层用ModelAndView 接受发送信息