码迷,mamicode.com
首页 > 其他好文 > 详细

Freemarker继续学习

时间:2016-04-15 12:22:22      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

Freemarker类型:

           支持的类型有:

       标量:字符串、数字、布尔值、日期

       容器:哈希表、序列、集

       子程序:方法和函数、用户自定义指令

        其他:节点



        解释一下  容器  中  集  是一个什么概念:从模板设计者角度来看,集是有限制的序列。不能获取集的大小,也不能通过索引取出集中的子变量,但是它们仍然可以通过list指令来遍历。


       方法和函数:个人理解和编程语言差别不大,就方法而言,就是Freemarker代码中可以调用方法,比如说:


技术分享

这里面有一个计算平均值的方法avg(),我们可以直接调用avg()来计算3和5的平均值


**********************************************************************分隔一下子,清楚一些*******************************************************************************************


用户自定义指令:按照字面意思理解,也就是自定义的Freemarker标签。

技术分享


&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&我的天呐我的天呐你肯定猜不到这是一排分割线&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


进行Freemarker编程编写的代码就是模板,也称为FTL,其实大致上包含三个部分:文本、插值、FTL标签

三个部分的知识在freemarker的初步学习中详细介绍了。

技术分享

FTL编程有以下几点要注意的:

1、FTL编程是区分大小写的

2、插值仅可以在文本中使用

3、FTL标签不可以在FTL标签和插值中使用

4、注释可以放在FTL标签和插值中间

5、指令的嵌套,基本上和HTML,XML语法相似,出了标签以#开头,用户自定义指令以@开头

6、当给插值提供值时,把它放到想输出文本的位置上给值就可以打印了,比如${(5+8)/2}将打印出6.5

7、<#if expression>表达式必须是布尔类型的,凸(艹皿艹 )这不是显而易见的么?

技术分享

技术分享

技术分享

直接写true和false就表征一个布尔值,不需要使用引号


序列:制定一个文字的序列,使用逗号来分隔其中的每个子变量,然后把整个列表放到方括号中:

技术分享

可以使用start...end定义存储数字范围的序列,如2..5和[2,3,4,5]是相同的,也就是当中有几个......就有几个数字,前面的那种方式内存占用少而且速度快,会更有效率。


在模板中指定一个哈希表,就可以遍历用逗号分隔开的“键/值”对,把列表放到花括号内。键和值成对出现并以冒号分隔。比如:

{"name":"green mouse","price":150}


从哈希表中检索数据的几种方式:

哈希表如下:

技术分享

要读取title有两种方法:

1、通过book.title

2、通过book["title"]

以下示例是等价的:

book.author.name

book["author"].name

book.author.["name"]

book["author"]["name"]

技术分享


Freemarker继续学习

标签:

原文地址:http://blog.csdn.net/u013253924/article/details/51152646

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!