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 ...
随机推荐
- Struts2之初识
Struts2教程 第一章 初识Struts2 主页:http://struts.apache.org/ 优势:用户请求,模块处理,页面展现.适用于企业级开发,便于维护. 配置:web.xml中添加的 ...
- vue调试工具vue-devtools安装及使用
本文主要介绍 vue的调试工具 vue-devtools 的安装和使用 工欲善其事, 必先利其器, 快快一起来用vue-devtools来调试开发你的vue项目吧 安装: 1.到github下载: ...
- 博文Contents<1--到450—>
积分=排名>2017-05-15这一天还真是厉害了.让我等了5个月时间... ====================-------------- 前言:博客中的随笔文章.并非都是笔者的原创文章 ...
- Volley源码学习笔记
标签(空格分隔): Volley 创建RequestQueue 使用Volley的时候,我们首先需要创建一个RequestQueue对象,用于添加各种请求,创建的方法是Volley.newReques ...
- 监听 window.open 打开的窗口关闭并回调
第三方的登录的解决方案通常有两种方式,一是打开一个新的标签页,然后登录回调回来: 二是通过父窗口打开一个子窗体去第三方登录,登陆成功时关掉子窗体回到父窗口. 问题来了 我的父窗体怎么样才知道子窗体被关 ...
- STM32经典概述(干货 )
STM32经典概述(干货 ) 首先,在学习Cortex-M3时,我们必须要知道必要的缩略语. 在网上看的,觉得挺好的,分享过来了 整理如下: AMBA:先进单片机总线架构 ADK:AMBA设计套 ...
- C++ operator bool
雕虫小技: #include <iostream> struct A{ operator bool(){ return false; } }; int main() { A a{}; if ...
- django全文检索
-------------------linux下配置操作1.在虚拟环境中依次安装包 1.pip install django-haystack haystack:django的一个包,可以方便地对m ...
- Maven生成可以直接运行的jar包的多种方式
Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...
- java代码块的理解
最近在复习java基础,在看到java代码块的时候,忽然发现自己貌似对于java代码块一无所知,于是赶紧对着一些资料实战演练了一把. 对于java代码块,不难根据名称看出其实就是一些java语句的集合 ...