freemarker面试_Freemarker常用技巧(二)

1 list、break指令

...

#list>

tem_index:当前变量的索引值.

item_has_next:是否存在下一个对象.

${x_index + 1}.${x}

,#if>

#if>

#list>

输出结果:

1.星期一,

2.星期二,

3.星期三,

4.兴趣四,

2 import指令

path:指定要被导入的模板文件.

mapObject:是一个Map对象.

意思:将path路径中的变量都放在mapObject中.

例子:

3 宏的基本用法

例如:

Hello JOE!

#macro>

使用时:

@greet>

如果没有体内容也可以用

可以在宏定义之后定义参数,宏参数是局部变量,只在宏定义中有效。如:

Hello ${person}!

#macro>

使用时:

and

输出为:

Hello emma!

Hello LEO!

注意:宏的参数是FTL表达式,所以,person=emma和上面的例子中具有不同的意义,这意味着将变量emma的值传给person,这个值可能是任意一种数据类型,甚至是一个复杂的表达式。

宏可以有多个参数,使用时参数的次序是无关的,但是只能使用宏中定义的参数,并且对所有参数赋值。如:

Hello ${person}!

#macro>

使用时:

正确

错误,color没有赋值,此时,如果在定义宏时为color定义缺省值这样的话,这个使用方法就是正确的。

FreeMarker缓存处理

上周我面试了一个人,无意中我问了一个问题:freemarker加载模板文件的缓存策略是什么呢?很遗憾,面试者没有回答出来。后来,我告诉面试者,学习一个框架,不仅仅是要明白这个框架如何使用,还要了解一下框架的底层实现。本文主要是给大家说一下FreeMarker的缓存实现部分。本文的内容大部分来自于互联网,要想更深入的了解与掌握

FreeMarker缓存处理,我个人觉得还是要深入研读源码,然后再看看网上的分析以加深印象,这样的学习效果是最好的。

FreeMarker 的缓存处理主要用于模版文件的缓存,一般来讲,模版文件改动不会很频繁,在一个流量非常大的网站中,如果频繁的读取模版文件对系统的负担还是很重的,因此 FreeMarker 通过将模版文件的内容进行缓存,来降低模版文件读取的频次,降低系统的负载。

当处理某个模版时,FreeMarker直接从缓存中返回对应的 Template

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值