FreeMarker 笔记:

1、 注释:
   <#-- 注释内容 -#>

2、<#if condition>
content1
<#else>
content2
<#if>
条件可以表示:a==b , a!=b,a>b,a<b ,a<=b,||,&&,!等
eg:
<#if user.name=="rhythmk">
A good boy!
<#if>

3、list 指令
<#list dataItems as d >
${d.item1} ,${d.item2}
<#list>

4、include 指令:
<#include "file路径" >
eg:
导入HTML页脚
<#include "/_foot.html">

5、空值处理
5.1、${obj!"ReplaceString"}
如果obj存在值则显示obj 不存在则用"ReplaceString"替换
5.2、 <#if obj??> content <#if>
如果obj为空 则隐藏整个语句块输出内容。

6、${} 输出
${user} <#-- 用user作字符串 -->
${user.age} <#-- 用user座位哈希表 -->
${user.age/10+2} <#-- 可以在${}进行计算-->
eg:
user.name="abcd"
${user.name[1]} 输出结果为"b"

7、转义符输出,在前面加 r
eg:
${r"${rhythmk}"}
输出
${rhythmk}

如果:${"name,${name}"}
name="rhythmk"
输出:
name,rhythmk

8、序列输出
<#list ["a","b","c"] as x>
${x}
<#list>

9、调用自定义方法
${doSomething(str)}

10、 输出HTML编码内容。 escape 与 noescape 指令
<#escape x as x?html>
编码HTML内容
<#noescape>无需编码HTML内容    http://www.cnblogs.com/rhythmK</#noescape>
<#escape>

11、宏的定义
11.1、普通宏定义:
<#macro greet> <font size="12">hello rhythmk!</font> </#macro>
调用宏:
<@greet></@greet>
11.2 、带参数的宏
    <#macro greet name> The name is ${name}</#macro>
调用:
<@greet name="rhythmk" />
11.3、将内容嵌套的宏定义,用 “<#nested>”表示替换的内容。
<#macro span>
<span>
<#nested>
</span>
<#macro>

12 、assign 变量创建
<#assign x=10>
${x}
<#assign x=x+10>
${x}
输出:
10 20

13、生命周期:
定义/lib/mytest.ftl 文件内容如下(可包含宏以及定义):
<#assign Age=10>
调用页面:
先引入:
<#import "/lib/mytest.ftl" as r>

${r.Age}
输出:
10

http://www.cnblogs.com/rhythmK
备注:freemarker 指令是区分大小写的

Rhythmk 一步一步学 JAVA (10): Freemarker 学习 1 - 入门的更多相关文章

  1. 五分钟学Java:如何学习Java面试必考的网络编程

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 简介 Java作为一门后端语言,对于网络编程的支持是必不可少的,但是,作为一个经常CRUD的Java工程师,很多时候都不 ...

  2. 五分钟学Java:如何学习Java面试必考的JVM虚拟机

    原创声明 本文首发于微信公众号[程序员黄小斜] 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 为什么要学习JVM虚拟机 最近的你有没有参加Java面试呢?你有没有发现,Java ...

  3. Java SSH框架学习(入门)

    SSH就是 struts+spring+hibernate 的一个集成框架,是java中一种流行的JAVA WEB 应用程序开源框架.由于我最熟悉的还是ASP.NET的的MVC和Python的Djan ...

  4. 小白学Java:包装类

    目录 小白学Java:包装类 包装类的继承关系 创建包装类实例 自动装箱与拆箱 自动装箱 自动拆箱 包装类型的比较 "=="比较 equals比较 自动装箱与拆箱引发的弊端 自动装 ...

  5. 学java得这样学,学习确实也得这样

    引言 软件开发之路是充满荆棘与挑战之路,也是充满希望之路.Java学习也是如此,没有捷径可走.梦想像<天龙八部>中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的.每天仰天大叫& ...

  6. 一步一步学Silverlight 2系列(10):使用用户控件

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  7. 一步一步学ROP之linux_x64篇

    一步一步学ROP之linux_x64篇 一.序 **ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防 ...

  8. 一步一步学ZedBoard & Zynq(四):基于AXI Lite 总线的从设备IP设计

    本帖最后由 xinxincaijq 于 2013-1-9 10:27 编辑 一步一步学ZedBoard & Zynq(四):基于AXI Lite 总线的从设备IP设计 转自博客:http:// ...

  9. 一步一步学android控件(之十五) —— DegitalClock & AnalogClock

    原本计划DigitalClock和AnalogClock单独各一篇来写,但是想想,两个控件的作用都一样,就和在一起写一篇了. DegitalClock和AnalogClock控件主要用于显示当前时间信 ...

随机推荐

  1. opengl去除控制台黑窗口

    增加如下语句: #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\ ...

  2. c++ rapidjson解析多层级json

    如果一个层级为data,其内部又包含一个层级status, 可以直接通过这种方式来跨级访问: rapidjson::Value& val_status = doc["data&quo ...

  3. selenium-java,解决一些加了显性等待和隐性等待都不好使的情况,以及给UI自动化加上暂停功能

    最近在UI自动化时遇到了,上一步成功操作后没有响应的情况(动画加载和浏览器加载导致实际没有问题),导致下一步无法成功操作,所有想在尝试2次操作后再次进行上一步操作解决这种情况导致的错误(其实是不想每一 ...

  4. BZOJ - 3295 动态逆序对 (树状数组套treap)

    题目链接 思路和bzoj2141差不多,不过这道题的数据更强一些,线段树套treapT了,树状数组套treap卡过~~ #include<bits/stdc++.h> using name ...

  5. const in C/C++

    1.const 对象必须初始化,因为一旦创建后值不能改变. Eg: const int i = GetSize(); //正确:运行时初始化 const int j = 42;   //正确:编译时初 ...

  6. jenkins for mac

    Mac环境中Jenkins的停止和启动命令启动sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist停止sudo launchc ...

  7. UI 设计中的视觉无障碍设计

    我给博客改了主题色,从 这样的 改成了 这样的:然而我问小伙伴看看效果他却并没有发现改变. 红绿色盲在亚洲人中占比,男性约 5%,女性则小得多.也就是说,就算仅考虑为国内用户开发应用,这也是很大的一部 ...

  8. NET Core中基于Generic Host来实现后台任务

    NET Core中基于Generic Host来实现后台任务 https://www.cnblogs.com/catcher1994/p/9961228.html 目录 前言 什么是Generic H ...

  9. 如何理解HTTP协议的 “无连接,无状态” 特点?

    HTTP 是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1.支持客户/服务器模式:2.简单快速:3.灵活:4.无连接:5.无状态. 无连接 无连接的含义是限制每次连接只处理一个请求. ...

  10. [深度学习]实现一个博弈型的AI,从五子棋开始

    好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...