2019-09-16 FreeMarker模板生成

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 接受发送信息

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容