freemarker官网:http://docs.freemarker.cn/

注意:

1.如果标签没有嵌套内容(在开始标签和结束标签之间的内容),那么可以只使用开始标签

(详情:http://freemarker.foofun.cn/dgui_template_valueinsertion.html)

2.插值使用内建函数c(代表''计算机'')是给计算机程序去识别,如:<a href="/shop/productdetails?id=${product.id?c}">Details...</a>

3.如果插值要生成HTML, 那么强烈建议你利用它来阻止跨站脚本攻击和非格式良好的HTML页面,如:

<#escape x as x?html>

<p>Title: ${book.title}</p>

<p>Description: <#noescape>${book.description}</#noescape></p>

<h2>Comments:</h2>

<#list comments as comment>

<div class="comment"> ${comment} </div>

</#list>

</#escape>

4.布尔值的插值使用:${married?string("yes", "no")}

一.使用

1.对象 -> ${key.property}

2.日期 -> 当前日期和时间:${date?datetime}
自定义日期格式:${date?string("yyyyMM/dd HH:mm:ss")}
(也可以使用FreeMarker的内建函数date,time和datetime来识别,如${lastUpdated?datetime})

3.处理不存在变量
(通过在变量名后面跟着一个 !(叹号)和默认值)
<h1>welcome ${user!"gg"}</h1>

(通过放置 ?? 来询问一个变量是否存在)
<#if user??><h1>welcome ${user}</h1><#/if>

(多级访问)
(animals.python.price)!0 ==> (animals.python.price)??

4.使用内建函数,如:
fruits?jion(",")通过连接所有项,将列表转换为字符串, 在每个项之间插入参数分隔符(比如 "orange,banana")

更多内建函数链接:http://freemarker.foofun.cn/ref_builtins.html

5.替换(方括号)语法,用 [#ftl]来开始模板,如:

[#ftl]

<p>We have these animals:<table border=1><tr><th>Name<th>Price [#list animals as animal] <tr> <td> [#if animal.size == "large"]<b>[/#if] ${animal.name} [#if animal.size == "large"]</b>[/#if] <td>${animal.price} Euros [/#list] </table>

二.指令
1.if指令
<#if >
<#elseif >
<#else >
</#if >

2.list指令
(基本用法)
<#list studentList as student>
下标:${student_index}
</#list>

(只有当fruits有值时才循环)
<#list misc.fruits>        <#list misc.fruits as fruit>

  <ul>              <ul>

    <#items as fruit>       =>                  <li>${fruit}

      <li>${fruit}           </ul>

    </#items>                             </#list>

  </ul>

</#list>

(被sep覆盖的部分只有当还有下一项时才会执行,因此最后面没有逗号。else表示水果为0时执行)
<p>Fruits:<#list misc.fruits as fruit>${fruit}<#sep>,<#else>none</#list>

freeMarker随手笔记的更多相关文章

  1. JS SDK 随手笔记

    JS SDK 随手笔记 窗口模块 Frame/Multi Frame 对话框 页面间的通讯 生命周期 窗口层叠 窗口模块 窗口模块是是AppCan移动应用界面最基本的单位.窗口是每个界面布局的基础,他 ...

  2. python3.x随手笔记2

    对象,价值观和类型 对象 Python的抽象的数据. 所有的数据在一个Python程序 表示对象或对象之间的关系. (在某种意义上,在 符合冯诺依曼模型的代码也“存储程序计算机” 由对象.) 每一个对 ...

  3. python3.x随手笔记1

    语法分析 Python程序读取的 解析器 . 解析器的输入流 令牌 ,生成的 词法分析程序 . 这一章描述了如何 词法分析程序把一个文件分解成令牌. Python读取程序文本作为Unicode代码点; ...

  4. C#基础随手笔记之基础操作优化

    对数据的查询,删除等基本操作是任何编程语言都会涉及到的基础,因此,研究了一下C#中比较常用的数据操作类型,并顺手做个笔记. List查询时,若是处理比较大的数据则使用HashSet<T>类 ...

  5. FreeMarker系列学习笔记

    FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.FreeMarker可以提供昜好的团队协作,对于界面 ...

  6. freemarker学习笔记

    在模板中定义的变量有三种类型: 引用 1:plain变量:可以在模板的任何地方访问,包括使用include指令插入的模板,使用assign指令创建和替换. 2:局部变量:在宏定义体中有效,使用loca ...

  7. Java模板引擎之Freemarker 学习笔记 一

    什么是Freemarker Freemarker是模板引擎,不是Web框架,只是视图层的组件,官网是 https://freemarker.apache.org/ Freemarker原理 数据模型+ ...

  8. C#入门随手笔记

    1..Net Framework是Microsoft为开发应用程序而创建的一个开发平台. 运行操作系统不限:Microsoft版本运行在windows,Mono版本运行开Linux和MacOS: 应用 ...

  9. spring随手笔记4:ref的属性

    1.local属性 引用在同一个xml的bean           只能引用bean的id <bean id="HelloWord" class="com.ltf ...

随机推荐

  1. skfpdb.db、cc3268.dll、system_V2.dat、JI60JS.dat文件内容、发票数据查询

    cc3268.dll.skfpdb.db.xxxxx_V2.dat,system.dat,JI60JS.dat,log.dat,system_V2.dat,JI60JS_V2.dat,log_V2.d ...

  2. python常见数据类型及操作方法

    title: "python数据类型及其常用方法" date: 2020-04-21T10:15:44+08:00 可变数据类型:允许变量的值发生变化,即如果对变量进行append ...

  3. C# 泛型的基本知识,以及什么是泛型?

    1.1 泛型概述 1.1.1 泛型广泛用于容器(collections) 1.1.2 命名空间System.Collections.Generic 1.2 泛型的优点. 以前类型的泛化(general ...

  4. Beta冲刺测试随笔

    测试工作安排 人员安排: 余文锦,孙劼成,陈富杰,明锐,王彦杰,陈康杰:测试 杨铭海,张鑫宇测试用例的编写 测试工具选择和运用 本来计划Beta冲刺挑选人员进行测试相关的接触和学习并胜任测试工作,但是 ...

  5. Python3使用cookielib模块

    同时使用过python2和python3的应该都知道,好多模块在python2中能直接安装,但是到了python3中却无法安装直接使用,同样python3中的好些模块在python2中也是一样 如下: ...

  6. 【面试篇】寒冬求职之你必须要懂的Web安全

    https://segmentfault.com/a/1190000019158228 随着互联网的发展,各种Web应用变得越来越复杂,满足了用户的各种需求的同时,各种网络安全问题也接踵而至.作为前端 ...

  7. C# MVC LayUI实现下拉框二级联动

    一.layui.use 1.LayUI的官方使用文档:https://www.layui.com/doc/ 2.layui的内置模块不是默认就加载好的,必须要执行启动模块的这种方法后模块才会加载: 3 ...

  8. Idea激活JRebel

    选择license激活 UUID 生成地址: http://www.uuid.online 激活地址 http://jrebel-license.jiweichengzhu.com/ UUID

  9. SSTI-服务端模板注入漏洞

      原理: 服务端模板注入是由于服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而导致了敏感信息泄露.代码执行.GetShell ...

  10. 怎么更改maven工程jdk版本(默为1.5,怎么更改jdk版本为1.8)

    使用maven 创建工程更改默认jdk版本(1.5)方法 step1: 找到自己项目的pom.xml文件,添加下图黄色区域代码(文末附上的有代码:可以直接复制) step2: 保存一下更改后的的pom ...