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 指令
相关推荐
HTML标签指令详解 ...下面将详细介绍 HTML 中的标签指令。 基本结构 ... * `<html>`:HTML 文档的开头和结尾 ...这篇文章详细介绍了 HTML 标签指令的使用方法和实践应用,旨在帮助读者快速掌握 HTML 编程技术。
另外,TSPL/TSPL2指令集包含了一些实用的函数和子程序,如INPUT(输入)、PREINPUT(预输入)、POSTINPUT(后输入)、SETFILTERON/OFF(滤镜开关)、REM(注释)、OUT(输出)、OUTR(输出记录)、GETKEY(获取按键...
它允许开发者用简单的标记语言来控制...总结来说,FreeMarker 提供了一套强大且灵活的模板语言,通过标签、指令、插值和表达式,能够方便地生成动态内容。理解并熟练掌握这些概念对于构建高效、可维护的模板至关重要。
### 51单片机汇编伪指令注释 #### 概述 MCS-51系列单片机是广泛应用于各种嵌入式系统中的经典微控制器之一。它支持多种编程语言,其中汇编语言因其直接操作硬件的能力而受到欢迎。在编写汇编程序时,除了基本的指令...
在 C 语言开发中,遵循注释和标签规则对于创建易于理解和维护的代码至关重要。Doxygen 注释规范不仅有助于自动生成文档,还能够提高代码的可读性。在实际开发过程中,开发者应当坚持使用规范的注释,这不仅有助于...
10. 注释和忽略指令:在指令列表中可以使用注释指令(<;>)添加注释,有助于理解和调试程序,而忽略指令(ABORT)用于停止执行之前未完成的指令。 在实际应用中,CPCL指令手册为开发人员提供了一种标准化的手段,来...
在Java Web应用开发中,JSP和Servlet经常配合使用,为用户提供交互式的网页服务。 **1. JSP概述** JSP是Java平台上的一个标准,它基于Java Servlet规范,提供了更简洁的视图层开发方式。JSP文件本质上是一个静态的...
18. 设置标签检测指令:。 19. 设置左对齐指令:LEFT。 20. 设置中心对齐指令:CENTER。 21. 设置右对齐指令:RIGHT。 22. 结束指令:END。 23. 忽略指令:ABORT。 24. 文字关联指令:TEXTConcatenation。 25. 多行...
格式命令用于设定标签格式和数据的多条格式指令按顺序执行。格式命令以^符号开始,例如^XA用于开始标签格式,^FS用于分隔域,^XZ用于结束标签格式。 二、控制命令(Control Commands) 控制命令用于迫使打印机立即...
同时,考虑到C++预处理器的存在,工具可能还需要处理#include指令和其他预处理器指令,以确保在删除注释时不破坏代码的正确性。 通过研究和理解这个"vc删注释工具"的源代码,开发者可以学到以下知识点: 1. C++...
此外,CPCL打印指令集支持打印中英文字符、数字、线段、方框等基本图形,同时也能处理一维和二维条码,包括常见的PDF-417、QR码等,可以满足大多数标签设计的打印需求。 CPCL打印指令集中的指令列表包含了多种控制...
* 注释是指令的注释信息,用于解释指令的功能和用途。 * 注释可以是多行的,每行以分号结尾。 本资源主要讲解了单片机原理与应用、80C51单片机指令系统、指令寻址方式、80C51单片机指令系统的组成、指令格式、标号...
斑马打印机指令集,简称ZPL(Zebra Programming Language),是一种高级标签打印语言,由斑马技术公司(Zebra Technologies)开发,广泛应用于各种条形码、二维码、图形和文本的打印任务。斑马打印机凭借其高效、...
它由一系列的标签组成,每个标签都有其特定的功能和用途。本文将对 HTML 中常用的标签进行详细的解释。 1. 文件标题 <title> 标签用于定义 HTML 文档的标题,它通常出现在 <head> 标签中。该标签的内容将显示...
- **控制转移指令**:“SJMP LOOP”使程序跳转到标签LOOP处继续执行。 #### 七、总结 8051单片机的指令系统提供了强大的功能,通过合理的使用这些指令,可以实现复杂的数据处理和控制逻辑。理解并熟练掌握8051...
芯烨打印机指令集手册是针对芯烨品牌生产的80mm系列热敏票据打印机XP-80X系列的编程手册,提供了该系列打印机的编程命令和其详细解释。手册中包含了以下方面的内容: 1. 命令名称及功能概述:这部分内容为每个命令...
除了HTML注释,JSP还提供了另外两种注释方式:JSP指令注释和JSP动作注释。但是,这两种注释并不适用于客户端,它们只在服务器端起作用。 - **JSP 指令注释**:以`开始,`--%>`结束,如: ```jsp 这是一个JSP...
FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨RISCV常见指令的执行周期及其对RISCV性能评估的重要性。 ### RISCV简介 RISCV(发音为“risk five”),即Reduced Instruction Set Computing Version 5,...
这些指南包括如何向LD程序添加梯级、如何给梯级添加标签和注释、如何添加分支和指令块等。指令块是梯形图中的基本单元,可能包含线圈和触点等元素,用于实现特定的控制逻辑。 在编程和操作过程中,用户应当熟悉如何...