Freemarker继续学习

Freemarker类型:

           支持的类型有:

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

       容器:哈希表、序列、集

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

        其他:节点



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


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



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


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


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



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


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

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

Freemarker继续学习_第1张图片

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

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

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

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

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

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

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

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

Freemarker继续学习_第2张图片

Freemarker继续学习_第3张图片


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


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


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


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

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


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

哈希表如下:

Freemarker继续学习_第4张图片

要读取title有两种方法:

1、通过book.title

2、通过book["title"]

以下示例是等价的:

book.author.name

book["author"].name

book.author.["name"]

book["author"]["name"]

Freemarker继续学习_第5张图片


你可能感兴趣的:(Freemarker继续学习)