FreeMarker

目录

  • 概述
      • 搭建
  • 数据类型
        • 布尔型
        • 日期型
        • 数值型
        • 字符型
        • sequence类型
        • hash类型
  • 常见指令
  • 页面静态化
  • 运算符

概述

模板引擎,基于模板和要改变的数据,生成输出文本(HTML网页,电子邮件,配置文件),是一个Java类库。

模板+数据=页面

FreeMarker_第1张图片

搭建

导入jar坐标

<dependency>
    <groupId>org.freemarkergroupId>
    <artifactId>freemarkerartifactId>
    <version>2.3.20version>
dependency>

<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-context-supportartifactId>
    <version>4.0.4.RELEASEversion>
dependency>

在spring-mvc.xml中配置freeMarker


<bean id="freeMarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    
    <property name="templateLoaderPath" value="/WEB-INF/views"/>
    <property name="defaultEncoding" value="UTF-8"/>
    
    <property name="freemarkerSettings">
        <props>
            <prop key="template_update_delay">0prop>
            
            <prop key="locale">zh_CNprop>
            <prop key="number_format">0.######prop>
        props>
    property>
bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="false"/>
    <property name="suffix" value=".ftl"/>
    <property name="requestContextAttribute" value="rc"/>
    <property name="contentType" value="text/html;charset=UTF-8"/>
    <property name="order" value="0"/>
bean>

controller层调用页面
FreeMarker_第2张图片
.ftl视图文件中显示
在这里插入图片描述

访问http://localhost:8081/f01/init即可显示

在freemarker中,所有的html标签、css、js都适用

数据类型

布尔型

直接输出${msg}会报错
FreeMarker_第3张图片

日期型

FreeMarker_第4张图片

数值型

FreeMarker_第5张图片

字符型

FreeMarker_第6张图片

直接输出不存在的值或者null都会报错
FreeMarker_第7张图片
FreeMarker_第8张图片

sequence类型

FreeMarker_第9张图片
FreeMarker_第10张图片

hash类型

FreeMarker_第11张图片

常见指令

assign定义变量
FreeMarker_第12张图片
if...else if...else逻辑判断
FreeMarker_第13张图片
FreeMarker_第14张图片
list遍历指令
FreeMarker_第15张图片

自定义指令macro

FreeMarker_第16张图片
num*num乘法表
FreeMarker_第17张图片

占位符指令nested

可将自定义指令中的内容通过占位符显示
FreeMarker_第18张图片
import 引入其他文件中的宏
FreeMarker_第19张图片
include包含指令
FreeMarker_第20张图片

页面静态化

页面上有很多不易改变的数据,就不能每次向后端请求,所以就将数据嵌套在一个模板当中
FreeMarker_第21张图片

运算符

FreeMarker_第22张图片

你可能感兴趣的:(web,前端,freemarker)