FreeMarker常用指令和函数

原创 2016年08月28日 20:32:16

针对FreeMarker的常用指令和函数的记录以备查看:

<html>
	<head>
		<meta charset="utf-8"/>
		<title>登录</title>
	</head>
	<body>
		<h1>用户注册信息</h1>
		用戶名:${user.username}
		密碼:${user.password}
		<br><br>
		
		<!-- 创建和替换变量 -->
		[#assign x=1]
		创建的变量x:${x}<br>
		[#assign x=x+3]
		替换后的变量x:${x}
		<!-- 注意局部变量的使用会隐藏简单变量,而循环变量的使用会隐藏局部变量和简单变量 -->
		
		<!-- if指令 -->
		[#if user.username ??]
			<p>恭喜你,登录成功</p>
		[#else]
			<p>用户名不存在</p>	
		[/#if]
		
		<!-- list、break指令 -->
		<br><br>
		[#list user.friendsList as friend]
			<p>${friend}</p>
		[/#list]
		
		<!-- include指令 -->
		<br><br>
		[#include "include.html"]
		<!--************** 以上是三个最常用的指令***************** -->
		
		
		<!--  noparse 指令 
		针对这个指令,中间主要放入需要显示freemarker源代码的内容 -->
		<br><br>
		[#noparse]
			[#if user.username ??]
			<p>恭喜你,登录成功</p>
			[#else]
			<p>用户名不存在</p>	
			[/#if]
		[/#noparse]
		
		<!--  compress 指令 
		这个指令的主要作用是压缩指令中间的空白行或者空白格 -->
		<br><br>
		[#compress]
			1  2    4               5
			we are 
			
			friends
		
		[/#compress]
		
		<!-- 处理不存在的状态,以下两种方式为常用处理方式 -->
		<p> Now is ${date!"2010-10-10"}</p>
		[#if date??]<p>Now is ${date}</p>[/#if]
		
		<!-- 表达式的使用 -->
		<br><br>
		${firstNum!}+${lastNum!}=${firstNum+lastNum}<br>
		${firstNum!}X${lastNum!}=${firstNum*lastNum}<br>
		${firstNum!}/${lastNum!}=${(firstNum/lastNum)?int}<br><!-- 使用内建函数获取整数部分 -->
		<!-- 字符串连接 -->
		${user.username+user.password}
		
		<!-- 自定义指令 -->
		<br><br>
			<!-- 不带参数的自定义指令 -->
		[#macro greet]
			<font size="+2">Hello Joe !</font>
		[/#macro]
		
		[@greet][/@greet]
			<!-- 带参数的自定义指令 -->
			<br><br>
		[#macro demo name sex ]
			<p>hello ${name} ,sex is ${sex}!
		[/#macro]	
		
		[@demo name="liubei" sex="man"][/@demo]
			<!-- 嵌套内容 -->
			<br><br>
		[#macro do]
			[#nested],
			[#nested],
			[#nested]
		[/#macro]
		[@do]hello[/@do]
		
		<!-- 命名空间和import标签 -->
		<!-- 命名空间是相互独立的,不存在命名空间包含 -->
		[#import "import.html" as my]	
		[@my.copyright date="2016-11-12"][/@my.copyright]<br>
		[#assign mail = "liutao8152@simulator.amazonses.com"]<br>
		${my.email}<br>
		${mail}<br>
		<!-- 如果想要改变命名空间里的变量乐意使用assign指令来完成,具体如下 -->
		<br><br>
		改变前的邮箱:${my.email}<br/>
		[#assign email = "912413295@qq.com" in my]
		assign标签改变后的邮箱:${my.email}
		
		
		
		
		
		<!--*********** 内建函数*************** -->
		<!-- substring取子串 -->
		<br><br>
		从第二个字符开始到最后:${testString?substring(1)}<br>
		从第二个字符开始到第五个字符:${testString?substring(1,4)}<br>
		<!-- cap_first首字母大写,uncap_first首字母小写,capitalize字符串单词的首字母大写 -->
		<br><br>
		首字母大写:${testString?cap_first}<br>
		首字母小写:${testString?uncap_first}<br>
		字符串单词首字母大写:${testString?capitalize}<br>
		<br><br>
		<!-- 切断换行符chop_linebreak,针对在字符串没有换行符的进行换行 -->
		换行:${testString?chop_linebreak}
		<br>
		<!--date,time,datetime,日期,时间,日期时间的格式化  -->
		[#assign test1 = "10/25/1995"?date("MM/dd/yyyy")] 
		[#assign test2 = "15:05:30"?time("HH:mm:ss")]
		[#assign test3 = "1995-10-25 03:05:12"?datetime("yyyy-MM-dd hh:mm:ss")]
		${test1} 
		${test2} 
		${test3} 
		<!-- ends_with 以...号结尾,用于判断字符串是否以指定的字符结尾 -->
		<br><br>
		[#if testString?ends_with("body!")]
			改字符串是以“body”结尾。
		[/#if]
		<!-- length字符串长度 -->
		<br><br>
		testString的长度是:${testString?length}
		<!-- lower_case,字符串的小写形式(upper_case表示转换为大写形式) -->
		<br><br>
		将字符串以小写形式显示:${testString?lower_case}
		<!-- left_pad,right_pad,距左边距,右边距 -->
		<br><br>
		[${"liubei"?left_pad(10)}]<br>
		[${"liubei"?left_pad(10,"-")}]
		<!-- contains判断是否包含 -->
		<br><br>
		[#if testString?contains("every")]
		<p>${testString!} contains "every"</p>
		[/#if]
		<!-- replace()替换 -->
		<br><br>
		替换:${testString?replace("hello","Welcome to ChengDu")}
		<!-- split()分割 -->
		<br><br>
		分割:
		[#list testString?split(" ") as word]
			${word}<br>
		[/#list]
		<!-- trim()修正字符串,将字符串两端的空格去掉 -->
		<br><br>
		去掉字符串两端的空格:(${"  liubei  "?trim})
		<!-- String数字转字符,可以利用转换对数字进行取舍,含有四舍五入 -->
		<br><br>
		[#assign x = 10.123]
		${x}<br>
		${x?string}<br>
		${x?string.number}<br>
		${x?string.currency}<br>
		${x?string.percent}<br>
		${x?string.computer}<br>
		<br><br>
		${x?string("0.##")}<br>
		${x?string("000.00")}<br>
		
		<!-- 设置预定义格式后进行显示 -->
		[#setting number_format = "0.##"]
		${12.23631}
		
		<!-- round(四舍五入),floor(相邻最小整数),ceiling(相邻最大整数) -->
		<br><br>
		针对-1.5:${-1.5?round},${-1.5?floor},${-1.5?ceiling}
		
		<!-- 处理日期格式 -->
		<br><br>
		${nowTime?string("yyyy-MM-dd HH:mm:ss")} <br>
		${nowTime?date} <br>
		${nowTime?time} <br>
		${nowTime?datetime} <br>
		
		<!-- 排序,如果使用?sort_by()就表示以什么来排序 -->
		<br><br>
		[#list wordList?sort as i]
			${i}
		[/#list]
		
		
		<!-- ******************程序开发****************** -->
		<!-- 自定义指令 -->
		[#assign upper = "com.lt.directive.UpperDirective"?new()] 
		[@upper]
			asdafads
		[/@upper]
		
	</body>
</html>


版权声明:本文为博主原创文章,未经博主允许不得转载。

Freemarker自定义指令

场景在做一个CMS网站时,要列出网站栏目,比如有新闻,科技,体育,财经等栏目。栏目内容存放在数据库中。调用语法 //没有循环变量 ...
  • csujiangyu
  • csujiangyu
  • 2015年11月18日 15:56
  • 4037

Freemaker FTL指令常用标签及语法

Freemaker FTL指令常用标签及语法
  • pengpengpeng85
  • pengpengpeng85
  • 2016年07月30日 06:27
  • 14423

springboot+freemarker 增加自定义变量和自定义

这个主要是因为喜欢在spring+springmvc中用freemarker时,增加${base} ,${jsPath},${cssPath}等等全局的变量来再也没使用,这样不用使用相对路径,或者有统...
  • shi0299
  • shi0299
  • 2017年07月04日 17:07
  • 2275

freemarker 常用指令

原文转载于:http://blog.csdn.net/geminiroy/article/details/4841686   FreeMarker的FTL指令也是模板的重要组成部分,这些指令可实现...
  • tanguang_honesty
  • tanguang_honesty
  • 2013年09月08日 18:42
  • 592

FreeMarker - 常用指令和宏

【1】list、break指令语法格式如下: ... item_index:当前变量的索引值. item_has_next:是否存在下一个对象.示例如下: ${x_index + 1}.${x}...
  • J080624
  • J080624
  • 2017年11月27日 21:31
  • 50

(三) Freemarker 常用指令

1. assign: 自定义变量 2. if else :流程判断指令 3. list: 变量sequence 4. marco: 宏指令(自定义方法) ...
  • zgf19930504
  • zgf19930504
  • 2016年03月01日 17:36
  • 1028

FreeMarker的常用指令(一)

FreeMarker的常用指令(一) Lola用两期来介绍FreeMarker语法之表达式,今天lola也会分两期来介绍FreeMarker的常用指令。FreeMarker的FTL指令也是模...
  • familyGo
  • familyGo
  • 2011年08月20日 10:54
  • 335

FreeMarker的常用指令

FreeMarker的常用指令 。
  • Robust_An
  • Robust_An
  • 2016年09月21日 23:15
  • 134

FreeMarker的常用指令1

FreeMarker的FTL指令也是模板的重要组成部分,这些指令可实现对数据模型所包含数据的抚今迭代,分支控制.除此之外,还有一些重要的功能,也是通过FTL指令来实现的。 1. if指令 这是一个...
  • yztezhl
  • yztezhl
  • 2013年07月25日 16:38
  • 465

NIOS_II常用指令,常用函数,以及个人的学习心得

  • 2011年03月31日 16:01
  • 55KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FreeMarker常用指令和函数
举报原因:
原因补充:

(最多只允许输入30个字)