`
liyixing1
  • 浏览: 953121 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

freemarker的内部变量,特殊变量

阅读更多
特殊变量是由FreeMarker引擎自己定义的变量。要访问它们,你可以使用.variable_name语法。比如,你不能仅仅写version,而必须写.version。
支持的特殊变量有:
 data_model:你可以使用来直接访问数据模型的哈希表。也就是,你使用global指令定义在这里不可见的的变量。
 error(从FreeMarker 2.3.1版本开始可用):这个变量在recover指令体中可以访问,它存储了我们恢复错的错误信息。
 globals:你可以使用来访问全局可访问的变量的哈希表:数据模型和由global指令创建的变量。注意用assign或macro创建的变量不是全局的。因此当你使用globals时你不能隐藏变量。
 language:返回当前本地设置的语言部分的值。比如.locale是en_US,那么.lang是en。
 locale:返回当前本地设置的值。这是一个字符串,比如en_US。要获取关于本地化字符串值的更多内容,请参考setting指令。
 locales:你可以访问本地化变量的哈希表(由local指令创建的变量,还有宏的参数)。
 main:你可以用来访问主命名空间的哈希表。注意像数据模型中的全局变量通过这个哈希表是不可见的。
 namespace:你可以用来访问当前命名空间的哈希表。注意像数据模型中的全局变量通过这个哈希表是不可见的。
 node(由于历史原因重命名为current_node): 你可以用访问者模式(也就是用visit,recurse等指令)处理的当前节点。而且,当你使用FreeMarker XML的Ant 任务时,它初始存储根节点。
 output_encoding(从FreeMarker 2.3.1版本开始可用):返回当前输出字符集的名称。如果框架封装FreeMarker却没有为FreeMarker指定输出字符集时这个特殊变量是不存在的。(程序员可以阅读关于字符集问题的更多内容,在:程序开发指南/其他/字符集问题部分。)
 template_name:当前模板的名称(从FreeMarker 2.3.14版本开始可用)。
 url_escaping_charset(从FreeMarker 2.3.1版本开始可用):如果存在,它存储了应该用于URL转义的字符集的名称。如果这个变量不存在就意味着没有人指定URL编码应该使用什么样的字符集。这种情况下,url内建函数使用特殊变量output_encoding指定的字符集来进行URL编码。处理机制和它是相同的。(程序员可以阅读关于字符集问题的更多内容,在:程序开发指南/其他/字符集问题部分。)
 vars:表达式.vars.foo返回和表达式foo相同的变量。出于某些原因你不得不使用方括号语法时这是有用的,因为它只对哈希表子变量有用,所以你需要一个人工的父哈希表。比如,要读取有特殊名称的顶层变量可能会把FreeMarker弄糊涂,你可以写.vars["A strange name!"]。或者,使用和变量varName给定的动态名称访问顶层变量你可以写.vars[varName]。注意这个哈希表由.vars返回,并不支持?keys和?values。
 version:返回FreeMarker版本号的字符串形式,比如2.2.8。这可以用来检
查你的应用程序使用的是哪个版本的FreeMarker,但是要注意这个特殊变量在2.3-final或2.2.8版本之前不存在。非最终发行版本号包含缩写形式的“preview”,是“pre”(比如2.3pre6),或缩写形式的“release candidate”,是“rc”。
分享到:
评论

相关推荐

    freemarker替换变量实例

    freemarker替换变量实例

    spring boot 和 freemaker 全局变量

    Spring MVC配置Freemarker全局变量,实现应用全路径

    freemarker语法完整版.doc

    4. Collection Variables:Collection Variables是一种特殊的Sequences,除了无法访问它的大小和不能使用索引来获得它的子变量外,其他行为与Sequences相同。 5. Methods:Methods是基于给出的参数计算,以新对象...

    Freemarker 实例,Freemarker 实例

    - **模板(Templates)**:Freemarker的核心是模板文件,它定义了页面的布局和样式,包含变量和控制结构。 - **数据模型(Data Model)**:提供给模板的数据,通常由Java对象构成,包括单个对象、集合、Map等。 - **模板...

    freemarker

    3. **Freemarker指令(Directives)**:这些是控制流程或结构的特殊标记,如`<#if>`、`<#foreach>`、`<#assign>`等。它们允许你在模板中进行条件判断、循环和变量赋值。 4. **内置函数(Built-in Functions)**:...

    freemarker 源码、中文API、 freemarker Myeclipse 编辑器

    通过阅读源码,开发者可以深入理解Freemarker内部的工作机制,比如模板解析、变量替换、数据模型绑定等过程。这对于想要定制或者优化Freemarker功能的高级开发者来说尤其有用。同时,源码也是学习软件设计模式和最佳...

    freemarker 自定义freeMarker标签

    FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...

    FreeMarker

    FreeMarker的核心概念是模板文件,这是一种特殊的文本文件,其中包含可替换的占位符(称为变量或指令)。当模板与数据模型合并时,这些占位符会被相应的数据值替换,生成最终的输出。FreeMarker支持多种内置指令和...

    eclipse的freemarker插件

    2. **语法高亮**:提供Freemarker关键词和语法的色彩突出显示,提高代码可读性,便于快速识别模板中的指令和变量。 3. **代码提示和完成**:在编写模板时,插件能提供智能代码补全功能,根据上下文提示可能的指令和...

    FreeMarker手册-Freemarker 2.3.18

    FreeMarker支持多种指令,如`<#if>`、`<#else>`、`<#else_if>`用于条件判断,`<#foreach>`、`<#break>`、`<#continue>`用于循环控制,`<#assign>`、`<#global>`进行变量定义,`<#function>`自定义函数等。...

    FreeMarker2.3.23官方中文文档

    这些变量和指令是用特定的FreeMarker语法表示的,例如`${expression}`用于输出变量值,`<#if>`、`<#foreach>`等用于控制流程。 1. **变量和表达式**:在FreeMarker模板中,`${}`内的内容是表达式,用于获取Java对象...

    freemark开发指南详解

    在FreeMarker模板中,每个哈希都有一个唯一的名称,与之关联的每个变量也都有一个唯一的键名。 3. Sequences(序列):序列也是一个容器,用于存储一系列的值,这些值可以按顺序访问。索引值默认从0开始。序列可以...

    freemarker Demo 适用于freemarker初学

    Freemarker提供了一个调试模式,可以帮助开发者找出模板中的错误,比如未定义的变量、语法错误等。 这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些...

    FreeMarker实例教程,手把手教你FreeMarker的方方面面

    - **在模板中定义变量**:讲解如何在模板内部定义变量并使用它们。 - **命名空间**:讨论了命名空间的概念及其在FreeMarker中的应用。 - **空白处理**:探讨了如何处理模板中的空白字符(如空格、制表符)。 - **...

    freemarker 简单项目示例

    - Freemarker支持变量、表达式、控制结构、函数和宏等高级功能。 - 变量表达式 `${variable}` 输出变量值,`<#assign>` 定义变量,`<#if>`、`<#else>`、`<#foreach>` 控制流程。 - 功能如日期格式化、条件判断、...

    freemarker基本语法整理

    Freemarker 的宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量。宏的基本用法如下: ```html <font size="+2">Hello Joe! ``` Struts2 环境中的 Freemarker 在 Struts2 环境中,...

Global site tag (gtag.js) - Google Analytics