FreeMarker基础入门知识1 -指令
来源:互联网 发布:淘宝开个进口食品店 编辑:程序博客网 时间:2024/05/21 09:58
1:指令
使用 FTL标签来调用 指令。 在示例中已经调用了 list
指令。在语法上我们使用了两个标签: <#list animals as animal>
和</#list>
。
FTL 标签分为两种:
开始标签:
<#directivename parameters>
结束标签:
</#directivename>
除了标签以 #
开头外,其他都和HTML,XML的语法很相似。 如果标签没有嵌套内容(在开始标签和结束标签之间的内容),那么可以只使用开始标签。 例如 <#if something>...</#if>
, 而FreeMarker知道 <#include something>
中的 include
指令没有可嵌套的内容。
parameters
的格式由 directivename
来决定。
事实上,指令有两种类型: 预定义指令 和 用户自定义指令。 对于用户自定义的指令使用 @
来代替 #
,比如,<@mydirectiveparameters>...</@mydirective>
。 更深的区别在于如果指令没有嵌套内容,那么必须这么使用 <@mydirective parameters />
,这和XML语法很相似 (例如 <img ... />
)。 但用户自定义指令是更高级的话题,将会在 后续章节 中继续讨论。
像HTML标签一样,FTL标签也必须正确地嵌套使用。下面这段示例代码就是错的, 因为 if
指令在 list
指令嵌套内容的内外都有:
<ul><#list animals as animal> <li>${animal.name} for ${animal.price} Euros <#if user == "Big Joe"> (except for you)</#list> <#-- WRONG! The "if" has to be closed first. --></#if></ul>
请注意,FreeMarker 仅仅关心FTL标签的嵌套而不关心HTML标签的嵌套。 它只会把HTML看做是文本,不会来解释HTML。
如果你尝试使用一个不存在的指令(比如,输错了指令的名称), FreeMarker 就会拒绝执行模板,同时抛出错误信息。
FreeMarker会忽略FTL标签中多余的 空白标记,所以也可以这么来写代码:
<#list[BR] animals as[BR] animal[BR]>[BR]${animal.name} for ${animal.price} Euros[BR]</#list >
当然,也不能在 <
,</
和指令名中间入空白标记。
所有指令的详细介绍可以在 模板语言参考 /指令参考 中找到(但是建议您先看表达式章节)。
通过配置,FreeMarker 可以在FTL标签和FTL注释中, 使用 [
和 ]
来代替 <
和 >
,就像 [#if user == "Big Joe"]...[/#if]
。 要获取更多信息,请参考:其它/替换(方括号)语法。
通过配置,FreeMarker 可以不需要 #
来理解预定义指令(比如 <if user == "Big Joe">...</if>
)。 而我们不建议这样来使用。要获取更多信息,请参考:模板语言参考 /废弃的 FTL 结构/老式 FTL 语法。
- FreeMarker基础入门知识1 -指令
- FreeMarker基础入门知识4 -自定义指令
- FreeMarker基础入门知识2 -表达式
- FreeMarker基础入门知识3 -插值
- FreeMarker基础入门知识6 -命名空间
- FreeMarker基础入门知识7 -空白处理
- freemarker入门 list指令
- 入门freemarker include指令
- FreeMarker基础入门知识5 -在模板中定义变量
- FreeMarker基础入门知识8 -替换(方括号)语法
- Java 基础入门知识1
- Linux基础入门指令
- FreeMarker的常用指令1
- UBUNTU基础操作指令知识
- freemarker指令
- Freemarker指令
- Freemarker指令
- FreeMarker 指令
- oracle调优 oracle培训
- AndroidStuido连接VPN Shdowsocks
- tomcat 配置虚拟路径
- Linux设备驱动基本概念
- thrift.rb--0.9.3
- FreeMarker基础入门知识1 -指令
- GCD-dispatch_group
- PHP中类的相关函数
- linux内核源码
- DPI-SSL工作原理
- office在线预览
- Java基础知识-IO流(八)
- PHP实现Apriori算法——计算置信度
- iOS Runtime与消息转发机制