FTL tags标签(FreeMarker 模板的语言标签):FTL标签和HTML标签有一点相似,但是它们是FreeMarker的指令而且是不会直接输出出来的东西。这些标签的使用一般以符号#开头。
用户自定义的FTL标签使用@符号来代替#
Comments注释:FreeMarker的注释和HTML的注释相似,但是它用<#--和-->来分隔的。任何介于这两个分隔符(包含分隔符本身)之间内容会被FreeMarker忽略,就不会输出出来了。
指令:
if指令
<#if condition> ... <#elseif condition2> ... <#elseif condition3> ... ... <#else> ... </#if>
<#if animals.python.price == 0> Pythons are free today! </#if> <#if animals.python.price < animals.elephant.price> Pythons are cheaper than elephants today. <#else> Pythons are not cheaper than elephants today. </#if>
switch,case,default,break指令
<#switch value> <#case refValue1> ... <#break> <#case refValue2> ... <#break> ... <#case refValueN> ... <#break> <#default> ... </#switch>
list,break 指令
<#list sequence as item> ... </#list>
你可以使用list指令来处理模板的一个部分中的一个序列中包含的各个变量。在开始标签和结束标签中的代码将会被处理,首先是第一个子变量,然后是第二个子变量,接着是第三个子变量,等等,直到超过最后一个。对于每个变量,这样的迭代中循环变量将会包含当前的子变量。
在list循环中,有两个特殊的循环变量可用:
item_index:这是一个包含当前项在循环中的步进索引的数值。
item_has_next:来辨别当前项是否是序列的最后一项的布尔值。
<#assign seq = ["winter", "spring", "summer", "autumn"]> <#list seq as x> ${x_index + 1}. ${x}<#if x_has_next>,</#if> </#list>
include指令
<#include path> or <#include path options>
这里:
path:要包含文件的路径;一个算作是字符串的表达式。(用其他话说,它不用是一个固定的字符串,它也可以是像profile.baseDir + "/menu.ftl"这样的东西。)
1. winter,
2. spring,
3. summer,
4. autumn
<#assign x=3>
<#list 1..x as i>
${i}
</#list>
1
2
3
<#list seq as x>
${x}
<#if x = "spring"><#break></#if>
</#list>
<#compress> ... </#compress> options:一个或多个这样的选项:encoding=encoding, parse=parse
encoding:算作是字符串的表达式
parse:算作是布尔值的表达式(为了向下兼容,也接受一部分字符串值)
import 指令
<#import path as hash>
这里:
path:模板的路径。这是一个算作是字符串的表达式。(换句话说,它不是一个固定的字符串,它可以是这样的一些东西,比如,profile.baseDir + "/menu.ftl"。)
hash:哈希表变量的结束名称,你可以由它来访问命名空间。这不是表达式。
<#import "/libs/mylib.ftl" as my> <@my.copyright date="1999-2002"/>noparse指令
<#noparse> ... </#noparse>FreeMarker不会在这个指令体中间寻找FTL标签,插值和其他特殊的字符序列,除了noparse的结束标记。
compress指令
escape,noescape指令
<#escape identifier as expression> ... <#noescape>...</#noescape> ... </#escape>assign 指令
<#assign name=value> or <#assign name1=value1 name2=value2 ... nameN=valueN> or <#assign same as above... in namespacehash> or <#assign name> capture this </#assign> or <#assign name in namespacehash> capture this </#assign>使用这个指令你可以创建一个新的变量,或者替换一个已经存在的变量。注意仅仅顶级变量可以被创建/替换
global 指令
<#global name=value> or <#global name1=value1 name2=value2 ... nameN=valueN> or <#global name> capture this </#global>这个指令和assign相似,但是被创建的变量在所有的命名空间中都可见,但又不会存在于任何一个命名空间之中。精确地说,正如你会创建(或替换)一个数据模型变量。因此,这个变量是全局的。如果在数据模型中,一个相同名称的变量存在的话,它会被使用这个指令创建的变量隐藏。如果在当前的命名空间中,一个相同名称的变量存在的话,那么会隐藏由global指令创建的变量。
local 指令
<#local name=value> or <#local name1=value1 name2=value2 ... nameN=valueN> or <#local name> capture this </#local>它和assign指令类似,但是它创建或替换局部变量。这仅仅在宏和方法的内部定义才会有作用。
setting 指令
<#setting name=value>
${1.2} <#setting locale="en_US"> ${1.2}输出
1,2 1.2用户自定义指令(<@...>)
<@html_escape> a < b Romeo & Juliet </@html_escape>macro,nested,return 指令
<#macro name param1 param2 ... paramN> ... <#nested loopvar1, loopvar2, ..., loopvarN> ... <#return> ... </#macro>
<#macro test> Test text <#return> Will not be printed. </#macro>function,return 指令
<#function name param1 param2 ... paramN> ... <#return returnValue> </#function>这里:
<#function avg x y> <#return (x + y) / 2> </#function> ${avg(10, 20)}
flush 指令
相关推荐
TagExplorer是一款专门用于编辑修改歌曲标签的工具,使用它可以很方便地修改歌曲的音轨编号、歌曲标题及艺术家,歌曲专辑年代和注释,添加或修改你要的标签内容,点击保存标签即可。还能添加歌词,封面艺术等内容。...
AB_PLC编程软件RSLOGIX5000入门5——理解标签编程doc,提供“AB_PLC编程软件RSLOGIX5000入门5——理解标签编程”免费资料下载,本文介绍了RSLOGIX5000标签编程的步骤,可供学习使用。
它是可扩展标记语言(Extensible Markup Language,简称XML),是一种标记... XML 文档的根元素被称为文档元素,它和在其外部出现的处理指令、注释等作为文档实体的子节点,根元素本身和其内部的子元素也是一棵树。
将java代码和HTML标签 全部注释掉,部署应用, 访问该页面;JSP中的注释—JSP注释;;使用何种注释;关于客户端动态;关于服务端动态;静态包含—include指令;a.jsp静态包含b.html;静态包含原理;静态包含的问题;动态包含—...
DOCTYPE>并不是HTML标签,它声明web浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现...
不同的处理器和汇编器可能有不同的语法和指令集。然而,大多数汇编语言都遵循一些基本的规则和结构。下面是一些常见的汇编语言语法规则: 指令格式: 大多数汇编指令由操作码(opcode)和操作数(operand)组成。...
指令文件名,模块名,指令模版文件名,样式文件名都是对应的如何查看:将index.html文件中需要将对应的指令css,指令标签注释打开,并将其他指令文件注掉后,直接用webstorm内置服务器打开(localhost:63342),或者...
JSP指令语法,基本原理,注释,脚本的方法
在FreeMarker中,使用FTL标签来使用指令,FreeMarker有3种FTL标签,这和HTML标签是完全类似的. 1,开始标签:<#directivename parameter> 2,结束标签:</#directivename> 3,空标签:<#directivename parameter/> 实际...
程序(位置寄存器法:建立坐标系,指定位置具体坐标): 程序行 指令 注释 1 PR[6]=LPOS 以位置6为原点 2 PR[1]=PR[6] 将位置6赋值给位置1 3 PR[1,2]=PR[6,2]+120 位置1:以位置6为基准,其Y方向+120 4 PR[2]=PR[1] ...
从一个高的层面来讲,指令是angular $compile服务的说明,当特定的标签(属性,元素名,或者注释) 出现在DOM中的时候,它让编译器附加指定的行为到DOM上。 这个过程是很简单的。angular内部有很用这样自带的指令,...
3 如何安装和启动 3 4 JSP简单示例 3 5 统一的网站界面 4 6 JSP语法概要 6 6.1 HTML 注释 6 6.2 隐藏注释 6 6.3 声明 7 6.4 表达式 8 6.5 Scriptlet 9 6.6 Page 指令 10 6.7 Taglib 指令 11 6.8 <jsp:forward> 12 ...
● 使用注释和文档编制功能 使用注释和文档编制功能 使用注释和文档编制功能 使用注释和文档编制功能 使用注释和文档编制功能 使用注释和文档编制功能 ● 预编译器指令 预编译器指令 预编译器指令 ● C# 编程的推荐...
AngularJS的自定义指令,就是你自己的指令,加上编译器... 注释指令 在我们现有的app中实现他们之前,我们来看看自定义指令是个什么样子: 元素指令 在html中写下如下的标签,它用来放置代码片段。当我们想使用特定的
taglib指令:使用标签库定义新的自定义标签,在jsp页面中启动自定行为 page指令语法 <%@page 属性1=”属性值” 属性2=”属性值1,属性值2″ 属性n=”属性值n”%> jsp注释 在jsp页面的注释。 HTML的注释: &...
注释被剥离,伪指令被扩展,每个标签的地址被记录到符号表中。 标签和伪指令的输入验证在此处执行。 输出被写入一个中间 (.int) 文件。 Pass 2:读取中间文件并将每条指令翻译成机器码。 在此步骤验证指令语法和...
2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 2.2.2 JavaBeans的事件 2.2.3 持久化 2.2.4 用户化 2.3 ...
2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 2.2.2 JavaBeans的事件 2.2.3 持久化 2.2.4 用户化 2.3 ...
在这里,我们提供ROAD数据集的下载和预处理说明,该指令通过我们的TPAMI论文发布:ROAD:用于自动驾驶的ROad事件感知数据集,并使用3D-RetinaNet代码作为基线,其中还包含评估代码。ROAD 数据集将在 ROAD 挑战中使用...
2.1.2 Java变量和函数 2.1.3 子类 2.1.4 this和super 2.1.5 类的类型 2.1.6 抽象类 2.1.7 接口 2.1.8 包 2.2 JavaBeans 2.2.1 JavaBeans的属性 2.2.2 JavaBeans的事件 2.2.3 持久化 2.2.4 用户化 2.3 ...