A | B | C | D | E | F | H | L | M | O | P | R | S | T | U | W | X
属性
关于XML或HTML(或通常为SGML),属性是与元素相关联的命名值。例如,在 ,属性是和 。左侧 是属性的名称,右侧是属性的值。请注意,在XML中,值必须引用(例如:),而在HTML中,这些值对于某些值是可选的。<body bgcolor=black text=green>...</body>
bgcolor=black
text=green
=
<body bgcolor="black" text='green'>
另请参见 开始标签
布尔
这是一个变量类型。布尔变量表示逻辑的真或假(是或否)。例如,如果访客已经登录。只有两个可能的布尔值: true
和false
。通常,当您要根据某些条件显示文本时,您将使用带有指令的布尔值,例如,仅对已登录的访问者显示页面的某一部分。<#if ...>
字符
人们以书面形式使用的象征。字母示例:拉丁字母A(“A”),拉丁字母A(“a”),数字四(“4”),数字符号(“#”),冒号(“:”)
字符集
字符集是用于将字符序列(文本)变换为比特序列(或实际上将字节序列转换为字节序列)的规则(算法 )。只要字符序列存储在数字媒体上,或通过数字通道(网络)发送,则必须应用字符集。字符集的示例有ISO-8859-1,ISO-8859-6,Shift_JIS,UTF-8。
不同字符串的功能是不同的,也就是说,并不是所有的字符都可以用于所有的语言。例如,ISO-8859-1不能代表阿拉伯语字母,但是ISO-8859-6可以表示ISO-8859-1可以重写的字母。大多数字符集对于允许的字符是高度限制性的。UTF-8几乎可以使用所有可能的字符,但大部分文本编辑器都无法处理(2004)。
当不同的软件组件交换文本(作为HTTP服务器和浏览器,或用于保存模板的文本编辑器和FreeMarker加载它们)时,非常重要的是在用于文本的二进制编码的字符集中同意。如果没有,那么二进制数据将被接收器(加载器)组件误解,这通常会导致非英文字母的失真。
采集
(与指令一起使用list
)的变量可以吐出一系列变量。
数据模型
当模板处理器组装输出(例如网页)时,保存模板必须显示(或以其他方式使用)的信息。在FreeMarker中,这最好可视化为一棵树。
指示
FreeMarker在FTL 模板中使用的说明。它们由FTL标签调用。
元件
元素是SGML文档中最基本的构件; SGML文档基本上是一个元素树。HTML中使用的元素示例:body,head,title,p,h1,h2。
结束标记
标签,表示以下内容不在元素下。示例: </body>
。
另请参见 开始标签
环境
一个Environment
对象存储一个模板的运行状态模板处理工作。也就是说,对于每个 调用,将创建一个实例,然后在返回时被丢弃。此对象存储由模板创建的一组临时变量,由模板设置的设置值,对数据模型根的引用等。完成模板处理作业所需的所有内容。Template.process(...)
Environment
process
可扩展标记语言
SGML的子集(受限版本)。这不如SGML强大,但它更容易学习,更容易处理程序。如果您是HTML作者:XML文档与HTML文档类似,但XML标准未指定可用元素。XML是比HTML更通用的东西。例如,您可以使用XML来描述网页(如HTML)或描述电话簿数据库等非可视信息。
请参阅 标准通用标记语言
FreeMarker模板语言
设计用于编写文本文件模板的简单编程语言,特别是HTML模板。
FTL
请参阅 FreeMarker模板语言
FTL标签
用于在 FTL 模板中调用FreeMarker 伪指令的类Tag文本片段。这些类似于HTML或XML标签乍一看。最显着的区别是,标签名称就开始或 。另一个重要的区别是FTL标签不使用属性,而是用来指定参数的语法。FTL标签的例子:, , #
@
<#if newUser>
</#if>
<@menuitem title="Projects" link="projects.html"/>
全资格名称
...节点(XML节点或其他FTL节点变量):节点的全限定名称不仅指定节点名(node?node_name
),而且还指定节点名称空间(node?node_namespace
),这样它明确地标识某种节点。全限定名称的格式为 nodeName
或 。该前缀是标识节点命名空间的简写(一个节点命名空间通常用一个长的丑陋的URI来指定)。在FTL中,前缀与指令参数与节点名称 空间相关 联。在XML文件中,前缀与具有属性的节点名称空间相关 联。 缺少前缀意味着如果定义了默认节点命名空间,节点将使用默认节点命名空间; 否则这意味着该节点不属于任何节点命名空间。默认节点命名空间在FTL中通过将保留前缀与该指令的参数进行注册来定义。在XML文件中,它用属性定义。prefix:nodeName
ns_prefixes
ftlxmlns:prefix
D
ns_prefixes
ftl
xmlns
... Java类:Java类的全限定名称同时包含类名和类所属的包的名称。这样,它明确地指定了类,而不管上下文。一个完整的类名的例子java.util.Map
:(而不是 Map
)。
函数定义体
和 之间的模板片段。当您调用函数(例如)时,将执行此模板片段 。<#function ...>
</#function>
myFuction(1, 2)
哈希
作为容器的变量,用于存储可以通过查找名称的字符串检索的子变量。
另请参见 序列
越线
换行符是一种特殊字符(或一系列特殊字符),当您以纯文本方式看到文本时(例如,当您使用Windows记事本读取文本时)会导致换行。通常通过按ENTER或RETURN键键入该字符。换行符在不同的平台上用不同的字符表示(导致不兼容和混淆...):UNIX-es上的“换行符”,Macintosh上的“回车”字符,“回车”+“换行符”两个字符!)在Windows和DOS上。请注意,在浏览器中查看时,HTML中的换行符不具有视觉效果; 你必须使用这样的标记<BR>
。本手册从不意味着<BR>
当它说“
宏定义体
和 之间的模板片段。当您调用宏(例如)时,将执行此模板片段 。<#macro ...>
</#macro>
<@myMacro/>
标记输出值
带有FTL类型“标记输出”的值。这种类型与自动转义机制有关 ; 你可以在那里阅读这个类型。但简而言之,这是一种存储已经以输出标记格式(如HTML,XML,RTF等)的文本的值,因此不能自动转义。
方法
一个根据你给出的参数计算出一些东西的变量,并返回结果。
MVC模式
MVC代表模型视图控制器。这是一个设计模式,从70年代开始,作为Smalltalk的Trygve Reenskaug的框架开发人员,并被用于UI(用户界面)。MVC考虑三个角色:
- 型号:Model以非视觉方式表示应用程序(域)特定信息。例如,计算机内存中的一系列产品对象是模型的一部分。
- 视图:视图显示模型并提供UI。例如,视图组件的任务是将产品对象数组呈现到HTML页面。
- 控制器:控制器处理用户输入,修改模型,并确保视图在需要时更新。例如,控制器的任务是接收传入的HTTP请求,解析接收到的参数(表单),将请求发送到正确的业务逻辑对象,并为HTTP响应选择合适的模板。
对Web应用程序应用MVC最重要的是将View与其他两个角色分离开来。这使得设计人员(HTML作者)与程序员分离。设计人员处理视觉方面,程序员处理应用逻辑等技术问题; 每个人都以他所擅长的工作。设计师和程序员彼此之间的依赖性较弱。没有程序员必须更改或重新编译程序,设计人员可以改变外观。
有关更多信息,我建议您使用J2EE平台蓝图阅读第4.4章设计企业应用程序。
输出编码
意味着输出字符集。在Java世界中,术语“编码”通常(mis)被用作字符集的同义词。
解析时错误
在模板解析阶段发生错误,而不是后面的模板执行阶段(参见下面的更多解释)。存在这样的错误可以防止整个模板的执行,即使执行不会使用错误的部分。这被认为是一个优势,因为它早期(在部署之前,理想的编辑器)错误检测。
FreeMarker模板分两个阶段进行处理。首先 ,语法分析整个模板,这被称为解析。解析的结果是一个 Template
Java对象,它通常被缓存以便快速重用。之后,已经解析的模板可以无限制执行,以便根据数据模型的内容产生输出。解析过程中发生的错误称为解析时错误。
预定义指令
指令由FreeMarker定义,因此始终可用。预定义指令的例子:if
, list
,include
另请参阅 用户定义的指令
正则表达式
正则表达式是一个字符串,用于指定与之匹配的一组字符串。例如,正则表达式 "fo*"
匹配"f"
, "fo"
,"foo"
等正则表达式是在几种语言和其他工具使用。在FreeMarker中,它们的使用是“高级用户”选项。所以如果你以前从来没有使用过,那就不用担心不熟悉它们了。但是,如果您对正则表达式感兴趣,则可以找到有关它们的多个网页和书籍。FreeMarker使用正则表达式的变体,描述如下:http ://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
纯量
标量变量存储单个值。标量是字符串或数字,也可以是日期/时间或布尔值。
序列
序列是包含子变量序列的变量。序列的子变量可以通过数值索引访问,其中第一个对象的索引为0,第二个对象的索引为1,第三个对象的索引为2等。
另请参见 哈希
SGML
请参阅 标准通用标记语言
标准通用标记语言
这是一个国际标准(ISO 8879),它规定了创建平台无关标记语言的规则。HTML是使用SGML创建的标记语言。XML是SGML的一个子集(限制版本)。
另请参阅可 扩展标记语言
起始标签
标签,表示以下内容在元素下,直到最终标签。起始标签也可指定属性的元素。开始标记的示例:<body bgcolor=black>
串
诸如“m”,“o”,“u”,“s”,“e” 的字符序列。
标签
指示SGML中元素使用的文本片段。标签的例子:<body bgcolor=black>
, </body>
模板
模板是一个文本文件,其中嵌入了一些特殊字符序列。模板处理器(例如FreeMarker)将解释特殊字符序列,并且从原始文本文件输出或多或少的不同文本,其中差异通常基于数据模型。因此,原始文本作为可能输出的模板。
模板编码
表示模板字符集。在Java世界中,术语“编码”通常(mis)被用作字符集的同义词。
模板处理作业
模板处理作业是FreeMarker将主(顶层)模板与数据模型合并以产生输出的过程。因为模板可以include
和 import
其他模板,这可能涉及到多个模板的处理,但是这些模板都将属于与主模板处理相同的模板处理作业。模板处理工作只有等到主模板的加工完成后存在了很短的时间,然后将其与过程中产生的所有变量(与创建的变量消失assign
, macro
,global
等指令)。
线程安全
一个对象是线程安全的,如果可以安全地从多个线程调用它的方法,甚至是并行的(即多个线程同时执行对象的方法)。在这种情况下,非线程安全的对象可能会出现不可预测的情况,并产生错误的结果,损坏的内部数据结构等。线程安全性通常以两种方式与Java实现:使用 synchronized
语句(或 synchronized
方法)以及不可变的封装数据(即您创建对象后无法修改该字段)。
转变
该术语是指用户定义的指令,它们已经被TemplateTransformModel
实现为现在已经过时的Java接口。该功能最初是用于实现输出过滤器,因此名称。
UCS
这是国际标准(ISO-10646),它定义了一组巨大的字符,并为每个字符分配一个唯一的数字(“!”是33,...,“A”是61,“B”是62,... ,阿拉伯字母hamza是1569 ...等等)。这个字符集(不是字符集)包含几乎所有今天使用的字符(拉丁字母,西里尔字母,中文字母等)。UCS背后的想法是我们可以使用唯一的数字来指定任何字符,而不是指定平台或语言是什么。
另请参见 Unicode
统一
由Unicode组织开发的事实上的标准。它处理UCS中的字符的分类(它是字母,数字,大写,小写等),以及处理从UCS的字符(例如标准化)构成的文本的其他问题。
用户定义的指令
指令不是由FreeMarker核心定义的,而是由用户定义的。这些通常是应用程序领域特定的指令,如下拉菜单生成指令,HTML表单处理指令。
另请参阅 预定义指令
空白
完全透明但影响文字视觉外观的字符。空白字符的示例:空格,制表符(水平和垂直),换行符(CR和LF),表单Feed。
请参阅 换行符
XML
请参阅 可扩展标记语言