FreeMarker模板使用小结
手册写的不错,忘记的时候可以翻翻n(*≧▽≦*)n
--------------------------------------------分割线--------------------------------------------
1.插值--通用
<div>${expr}</div>
2.插值结合运算符
为了处理缺失变量,FreeMarker提供了两个运算符: (用于防止对象不存在而导致的异常报错 )
! : 指定缺失变量的默认值
?? : 判断某个变量是否存在,返回boolean值
比如:
<#if item??>
<div>${item}</div>
</#if>
又或者:
<#if (item.name)??>
<div>${item.name!'admin'}</div>
</#if>
特别提示:
<#if (item.name)??></#if> 与 <#if item.name??></#if>是不一样的哦,前者判断item和name是否为空,而后者指判断name是否为空!
3.内置函数
html :字符串中所有的特殊 HTML 字符都需要用实体引用来代替(比如 < 代替 < )
trim :去掉字符串前后的空白字符
size : 序列(seqlist)中元素的个数
string :指定格式,常用日期
例子:
${item.date?string('yyyy-MM-dd HH:mm:ss')} //日期格式
${item?string.number} //数字格式
${item.money!?string("0.00")} 元 //金钱格式
?html 用于将字符串中可能包含的html字符,进行过滤.
4.对象的使用
obj.Map()
使用{}包住,以成对的键值存在;
可以混合使用.和[""],例如item.stu['name'];
5.逻辑判断
<#if condition>...
<#elseif condition2>...
<#else>...
6.列表循环
<#list items as item>
${item}
</#list>
item_index为当前变量的索引值,从0开始
item_has_next是否存在下一个对象(来辨别当前项是否是序列的最后一项的布尔值)
手册示例:
<#assign seqlist=["spring","summer","autumn","winner"]>;
<#list seqlist as item>
${item_index + 1}.${item} <#if item_has_next>,</#if>
</#list>
结果是按数组顺序输出!
7.assign指令创建
<#assign num=1 > (创建变量num)
<#assign num=num+1 > (替换变量num)
可以在任何地方使用访问
8.空值(或不存在)变量的判断
<#if item.name??></#if> (询问变量是否存在)
${user!"Anonymous"} 或者 ${user!}(指定默认)
特别注意几点:
FreeMarker模板语言没有null关键字,所以不能判断变量是否为Null;
FreeMarker 不能容忍引用不存在的变量,除非明确地告诉它当变量不存在时如何处理;
不存在的变量和一个值为null的变量,是一样的。
9.特殊字符
\r 回车
\n 换行
\" 双引号
\' 单引号
\t Tab
\b 退格键
\\ 反斜杠
注意**
> gt
>= gte
< lt
<= lte
10.include 导入其他页面
<#include "../header.html" />
插入另外一个指定路径的 FreeMarker 模板文件,输出格式是在include标签出现的地方插入;
区分:
<@include_page path="../header.html"/>
会开始一个独立的 HTTP 请求处理,一般不用;
JSP写法:
<jsp:include page="path/to/some.jsp">
--------------------------------------------分割线--------------------------------------------
上面总结的都是我平时用到的一些指令语法等内容,其他没有用到的我就暂时没有放上来,以后会继续补充哒n(*≧▽≦*)n!
FreeMarker模板使用小结的更多相关文章
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- Spring 4 使用Freemarker模板发送邮件&添加附件
前言 Spring对Java的邮件发送提供了很好的支持,提供了超级简单的API,大大简化了Java邮件发送功能的开发. Spring对Email的支持是基于JavaMail API开发的,所以,我们在 ...
- FreeMarker模板开发指南知识点梳理
freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...
- 161213、Maven资源替换和Freemarker模板
先介绍一下本文的两位主角: Apache Maven - 正当红的项目管理工具 FreeMarker - 老牌的模板引擎 两者貌似互不相干,何来冲突呢? 原来Maven有一个内置的资源替换机制, 可以 ...
- FreeMarker模板引擎
现在开发的项目,也是基于SOA架构,每个功能接口都是用WebService实现,Web服务的通信协议就是用XML来传输. 以前写WebService都是自动生成XML,没想到这项目竟然要自己定义XML ...
- FreeMarker模板语法
四.FreeMarker模板语法 要编写复杂的模板需要熟悉FreeMarker语法规则,官网有详细说明,中文帮助也比较详细了,下面这些内容是从网上收罗来的,感谢网友的分享,经过整理与修改的内容如下.建 ...
- Spring Boot 系列(五)web开发-Thymeleaf、FreeMarker模板引擎
前面几篇介绍了返回json数据提供良好的RESTful api,下面我们介绍如何把处理完的数据渲染到页面上. Spring Boot 使用模板引擎 Spring Boot 推荐使用Thymeleaf. ...
- 安装freemarker模板的ftl插件
安装freemarker模板的ftl插件 同意协议 等待运行完成 重新启动eclipse 查看是否生效
- JFinal配合Shiro权限控制在FreeMarker模板引擎中控制到按钮粒度的使用
实现在FreeMarker模板中控制对应按钮的显示隐藏主要用到了Shiro中的hasRole, hasAnyRoles, hasPermission以及Authenticated等方法,我们可以实现T ...
随机推荐
- MySQL中count(1),count(*),count(col)的区别
count(*)返回行数的时候不管列中的值是不是null,在MyISAM表中,count(*)被优化,因为在MyISAM表中,行数被额外存储了,所以会很快,但是这个时候不能有where条件.innod ...
- 自定义EasyUI的datetimebox控件日期时间的显示格式(转)
工作中遇到的问题,在此记录一下. 需求:前台页面使用了EasyUI框架,在某一个html页面中要求datetimebox显示格式为年月日和小时,如图所示: 尝试过两种方法,分别如下: 第一种方法: d ...
- OpenPop.NET
OpenPop用于接收邮件,可以读取邮件内容或者邮件附件内容导入到系统中 http://hpop.sourceforge.net/documentation/index.html
- JavaScript基础-流程控制-if
流程控制基本概念 默认情况下,程序的运行流程是这样的:运行程序后,系统会按书写从上至下顺序执行程序中的每一行代码,但是这并不能满足我们所有的开发需求 1.png 实际开发中, 我们需要根据不同的条件执 ...
- HTML特殊符号对照表 常用字符实体
前沿:阿飞表示虽然大部分都不常用,但是有些基本的还是要背下的,比如空格,大于,小于.^_^
- Java基础二
1 关键字 定义:被java语言赋予了特殊含义的单词. 特点:关键字中的所有字母都为小写. 用于定义数据类型的关键字 class.interface.byte.short.int.long.float ...
- CSS3笔记之第三天
CSS浮动 float:right 伪类: a:link {color:#FF0000;} /* 未访问链接*/ a:visited {color:#00FF00;} /* 已访问链接 * ...
- JVM(一) OpenJDK1.8源码在Ubuntu16.04下的编译
笔者最近在学习周志明老师编写的<深入理解Java虚拟机>一书,书中第一章的实战部分就是"自己编译JDK",不过书中提到的是OpenJDK 7的编译.由于现在Java开发 ...
- VS2015企业版和专业版永久密匙
专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
- Keepalive之nginx调度架构
author:JevonWei 版权声明:原创作品 单主模式Keepalive之Nginx调度 实验目的:实现Nginx调度的高可用,当一台Nginx调度器故障时,启用备用的Nginx调度,在架构中, ...