Glossary

A | B | C | D | E | F | H | L | M | O | P | R | S | T | U | W | X

  • Attribute

    • XML或 HTML(通常为SGML)结合使用时,属性是与元素关联的命名值。例如,在<body bgcolor=black text=green>...</body>中,属性是bgcolor=blacktext=green=的左侧是属性的名称,而右侧是属性的值。请注意,在 XML 中,值必须用引号引起来(例如<body bgcolor="black" text='green'>),而在 HTML 中,某些值是可选的。

另请参见Start-tag

  • Boolean

    • 这是一个变量类型。布尔变量表示逻辑上的是或否(是或否)。例如,访客是否已登录。只有两个可能的布尔值:truefalse。通常,当您要基于某种条件显示文本时,将使用带有<#if ...>指令的布尔值,例如,仅向已登录的访问者显示页面的特定部分。
  • Character

    • 人们在写作中使用的符号。字符示例:拉丁大写字母 A(“ A”),拉丁小写字母 A(“ a”),数字四(“ 4”),数字符号(“#”),冒号(“:”)
  • Charset

    • 字符集是一种规则(算法),用于将characters(文本)序列转换为位序列(或实际上转换为字节序列)。每当字符序列存储在数字媒体上或通过数字通道(网络)发送时,都必须应用字符集。字符集的示例是 ISO-8859-1,ISO-8859-6,Shift_JIS 和 UTF-8.

不同字符的功能不同,也就是说,并非所有字符集都可以用于所有语言。例如,ISO-8859-1 不能代表阿拉伯字母,但是 ISO-8859-6 可以代表,但是它不能代表 ISO-8859-1 可以带重音的字母。大多数字符集对允许的字符都有严格的限制。 UTF-8 实际上允许所有可能的字符,但是大多数文本编辑器还不能处理它(2004 年)。

当不同的软件组件交换文本时(例如,HTTP 服务器和浏览器,或用于保存模板的文本编辑器,以及加载它们的 FreeMarker),它们在用于文本二进制编码的字符集中达成一致非常重要。如果没有,则二进制数据将被接收方(加载程序)组件误解,这通常会导致非英语字母的失真。

  • Collection

    • 一个变量(与list指令一起使用)可以吐出一系列变量。
  • Data-model

    • 模板处理器组合输出(例如网页)时,用于保存模板必须显示(或以其他方式使用)信息的东西。在 FreeMarker 中,最好将其可视化为树。
  • Directive

另请参见Predefined directiveUser-defined directive

  • Element

    • 元素是SGML文档的最基本组成部分; SGML 文档基本上是元素树。 HTML 中使用的元素示例:正文,标题,标题,p,h1,h2.
  • End-tag

    • Tag,表示以下内容不在元素下。示例:</body>

另请参见Start-tag

  • Environment

    • Environment对象存储单个模板模板处理作业的运行时状态。也就是说,对于每个Template.process(...)调用,将创建Environment实例,然后在process返回时将其丢弃。该对象存储由模板创建的一组临时变量,由模板设置的设置的值,对数据模型根的引用等。完成模板处理作业所需的一切。
  • 可扩展标记语言

    • SGML的子集(受限制的版本)。它的功能不如 SGML,但更易于学习,也更易于使用程序进行处理。如果您是 HTML 作者:XML 文档与 HTML 文档相似,但是 XML 标准未指定可用元素。 XML 是比 HTML 更通用的东西。例如,您可以使用 XML 来描述网页(例如 HTML)或描述非可视信息(例如电话簿数据库)。

另请参见标准通用标记语言

  • FreeMarker 模板语言

    • 一种简单的编程语言,旨在编写文本文件模板,尤其是 HTML 模板。
  • FTL

  • FTL tag

    • 类似于Tag的文本片段,用于调用FTL templates中的 FreeMarker directives。乍一看,它们类似于 HTML 或 XML 标签。最突出的区别是标记名称以#@开头。另一个重要的区别是 FTL 标签不使用attributes,而是使用实质上不同的语法来指定参数。 FTL 标签的示例:<#if newUser></#if><@menuitem title="Projects" link="projects.html"/>
  • Full-qualified name

    • ...节点(XML 节点或其他 FTL 节点变量):节点的全名不仅指定节点名称(node?node_name),还指定节点名称空间(node?node_namespace),这样就可以明确地标识某种类型的节点。完全限定名称的格式为nodeNameprefix:nodeName。前缀是标识节点名称空间的简写(通常使用长的丑陋 URI 指定节点名称空间)。在 FTL 中,前缀通过_6 的ns_prefixes参数与节点名称空间关联。在 XML 文件中,前缀与具有xmlns:prefix属性的节点名称空间相关联。缺少前缀意味着,如果定义了默认节点名称空间,则该节点将使用默认节点名称空间;否则,意味着该节点不属于任何节点名称空间。默认节点名称空间是在 FTL 中定义的,方法是使用ftl指令的ns_prefixes参数注册保留的前缀D。在 XML 文件中,它是使用xmlns属性定义的。

Java 类的...:Java 类的完全限定名称包含类名称和该类所属的包的名称。这样,无论上下文如何,它都可以明确指定类。完全限定的类名的示例:java.util.Map(与Map相对)。

  • 函数定义主体

    • <#function ...></#function>之间的模板片段。当您调用函数(例如myFuction(1, 2))时,将执行此模板片段。
  • Hash

    • 充当容器的变量,该变量存储可通过作为查找名称的字符串检索的子变量。

另请参见Sequence

  • Line break

    • 换行符是一种特殊字符(或一系列特殊字符),当您将文本视为纯文本时(例如,使用 Windows 记事本阅读文本时),它会导致换行。通常,您可以通过按 ENTER 或 RETURN 键来键入此字符。在不同的平台上,换行符用不同的字符表示(导致不兼容和混乱...):UNIX-es 上的“换行”字符,Macintosh 上的“回车”字符,“回车”“换行”(两个字符!)在 Windows 和 DOS 上。请注意,在浏览器中查看时,HTML 中的换行符没有视觉效果。您必须为此使用诸如<BR>之类的标记。当本手册说“换行符”时,绝不会表示<BR>
  • 宏定义主体

    • <#macro ...></#macro>之间的模板片段。当您调用宏(例如<@myMacro/>)时,将执行此模板片段。
  • 标记输出值

  • Method

    • 一个变量,该变量根据您提供的参数计算出一些东西,然后返回结果。
  • MVC pattern

    • MVC 代表模型视图控制器。这是一种设计模式,始于 70 年代,最初是 Trygve Reenskaug 的 Smalltalk 框架开发人员,最初用于 UI-s(用户界面)。 MVC 考虑三个角色:
  • 模型:模型以非可视的方式表示特定于应用程序(域)的信息。例如,计算机内存中的一系列产品对象就是模型的一部分。

  • 视图:视图显示模型并提供 UI。例如,视图组件的任务是将产品对象的数组呈现到 HTML 页面。

  • 控制器:控制器处理用户 Importing,修改模型并确保在需要时更新视图。例如,控制器的任务是接收传入的 HTTP 请求,解析接收到的参数(表单),将请求分派到适当的业务逻辑对象,然后为 HTTP 响应选择正确的模板。

当将 MVC 应用于 Web 应用程序时,对我们来说最重要的事情是将 View 与其他两个角色分开。这样可以将设计师(HTML 作者)与程序员分开。设计人员处理视觉方面,程序员处理应用程序逻辑和其他技术问题;每个人都致力于自己擅长的领域。设计人员和程序员之间的依赖性较小。设计人员可以更改外观,而无需程序员更改或重新编译程序。

有关更多信息,我建议阅读使用 J2EE 平台蓝图设计企业应用程序的chapter 4.4

  • Output encoding

    • 表示输出charset。在 Java 世界中,术语“编码”通常(误)用作 charset 的同义词。
  • Parse-time error

    • 与稍后的模板执行阶段相反,在模板解析阶段发生错误(请参见下面的更多说明)。这样的错误的存在会阻止整个模板的执行,即使执行不会使用错误所在的部分。这被视为一种优势,因为它有助于早期(在部署之前,最好是在编辑器中)错误检测。

FreeMarker 模板分为两个阶段进行处理。首先,对* whole *模板进行语法分析,这称为解析。解析的结果是一个Template Java 对象,通常将其缓存以快速重用。以后,已经解析的模板可以无限次执行,以基于data-model的内容产生输出。解析期间发生的错误称为解析时错误。

  • Predefined directive

    • 指令由 FreeMarker 定义,因此始终可用。sched 义指令的示例:iflistinclude

另请参见User-defined directive

  • Regular expression

    • 正则表达式是一个字符串,它指定一组与之匹配的字符串。例如,正则表达式"fo*"匹配"f""fo""foo"等。正则表达式在多种语言和其他工具中使用。在 FreeMarker 中,它们的用法是“高级用户”选项。因此,如果您以前从未使用过它们,则无需担心不熟悉它们。但是,如果您对正则表达式感兴趣,则可以找到一些有关它们的网页和书籍。 FreeMarker 使用正则表达式的变体,描述于:http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
  • Scalar

    • 标量变量存储单个值。标量可以是字符串,数字或日期/时间或boolean
  • Sequence

    • 序列是包含子变量序列的变量。可通过数字索引访问序列的子变量,其中第一个对象的索引为 0,第二个对象的索引为 1,第三个对象的索引为 2,依此类推。

另请参见Hash

  • SGML

  • 标准通用标记语言

    • 这是一个国际标准(ISO 8879),它指定了创建与平台无关的标记语言的规则。 HTML 是使用 SGML 创建的标记语言。 XML是 SGML 的子集(受限版本)。

另请参见可扩展标记语言

  • Start-tag

    • Tag,指示以下内容在元素下,直到end-tag。起始标签还可以为元素指定attributes。起始标签的示例:<body bgcolor=black>
  • String

    • characters的序列,例如“ m”,“ o”,“ u”,“ s”,“ e”。
  • Tag

    • 指示 SGML 中元素用法的文本片段。标签示例:<body bgcolor=black></body>

另请参见Start-tagEnd-tag

  • Template

    • 模板是一个文本文件,其中嵌入了一些特殊的字符序列。模板处理器(例如 FreeMarker)将解释特殊字符序列,并输出与原始文本文件大致不同的文本,其中差异通常基于data-model。因此,原始文本充当可能输出的模板。
  • Template encoding

    • 表示模板charset。在 Java 世界中,术语“编码”通常(误)用作 charset 的同义词。
  • 模板处理作业

    • 模板处理作业是 FreeMarker 将主(顶层)模板与数据模型合并以生成输出的过程。因为模板可以includeimport其他模板,所以这可能涉及多个模板的处理,但是这些模板都属于同一模板处理作业,该作业是从主模板的处理开始的。模板处理作业仅存在很短的时间,直到完成主模板的处理为止,然后该模板处理作业随过程中创建的所有变量(使用assignmacroglobal等指令创建的变量)消失。
  • Thread-safe

    • 如果可以安全地从多个线程调用其方法(即使是并行执行)(即,多个线程同时执行该对象的方法),则该对象是线程安全的。非线程安全的对象在这种情况下可能会发生不可预测的行为,并产生错误的结果,破坏内部数据结构等。线程安全通常通过 Java 以两种方式实现:使用synchronized语句(或synchronized方法)以及使用封装数据的不变性(即创建对象后无法修改字段)。
  • Transform

    • 该术语指的是用户定义的指令,这些指令通过现在已过时的TemplateTransformModel Java 接口实现。该功能最初是为实现输出过滤器而制作的,因此得名。
  • UCS

    • 这是国际标准(ISO-10646),它定义了一个庞大的characters集合,并为每个字符分配了唯一的数字(“!”为 33,...,“ A”为 61,“ B”为 62,... ,阿拉伯字母 hamza 是 1569 ...等)。该字符集(不是字符集)包含当今使用的几乎所有字符(拉丁字母,西里尔字母,中 Literals 母等)。 UCS 背后的想法是,我们可以指定具有唯一编号的任何字符,而不用考虑平台或语言的含义。

另请参见Unicode

  • Unicode

    • 事实标准,由 Unicode 组织开发。它处理UCS中字符的分类(即字母,数字,大写,小写等),以及处理由 UCS 字符制成的文本的其他问题(例如规范化)。
  • User-defined directive

    • 指令不是由 FreeMarker 核心定义的,而是由用户定义的。这些通常是特定于应用程序域的指令,例如下拉菜单生成指令,HTML 表单处理指令。

另请参见Predefined directive

  • White-space

    • 完全透明但对文本的视觉外观有影响的字符。空格字符的示例:空格,制表符(水平和垂直),换行符(CR 和 LF),换页。

另请参见Line break