`
huaxin803
  • 浏览: 113396 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FreeMarker模板包含及名称空间

 
阅读更多
摘要: FreeMarker模板包含及名称空间,主要是为了模板的重用。使用<#include>包含其他模板,如果包含多个模板,可能会出现同名变量被覆盖的问题。可以使用import来完成导入,并且加入名称空间

FreeMarker模板包含及名称空间,主要是为了模板的重用。使用<#include>包含其他模板,如果包含多个模板,可能会出现同名变量被覆盖的问题。可以使用import来完成导入,并且加入名称空间


模板11.ftl包含/inc/inc1.ftl和/inc/inc2.ftl

inc1.ftl:

<#assign username="张三">

<#macro test>

hello world

<#macro>

/inc/inc2.ftl:

<#assignusername="李四">

11.ftl的模板及输出:

<#include style="color:black">

<#include style="color:black">

${username}

李四

从上面的例子中可以看出使用incldue会出现同名变量被覆盖的问题,可以使用import来完成导入,并且加入名称空间(名称空间其实就是给引入的模板起一个名称)

<#import style="color:black">

<#import style="color:black">

${inc2.username}

${inc1.username}

李四

张三

在11.ftl中,也可在定义模板变量时指定其所属的名称空间(inc2或inc1,不能凭空捏造),且此时就必须使用"名称空间.变量名"的方法访问了

<#--<>将一个变量定义到名称空间中-->

<#assign age="12">

${inc2.age}

12

访问名称空间中的自定义指令

在inc1.ftl中有一个自定义的指令test,访问方式如下:

<#--<>访问名称空间中的自定义指令-->

<@inc1.test>

hello world


本文链接:FreeMarker模板包含及名称空间,本文由huangyineng原创,转载请注明出处


分享到:
评论

相关推荐

    freemarker语法完整版

    - `&lt;#include filename&gt;` 用于包含其他模板文件。 - 可以指定编码和解析模式。 - 示例: ```freemarker ``` **5. import** - `&lt;#import path as hash&gt;` 用于导入文件及其宏组件。 - 示例: ```freemarker ...

    freemarker概述

    - **名字空间**: 有助于避免命名冲突,便于管理和重用宏库。 - **通用数据模型**: - **对象封装**: Java对象通过对象封装器在模板中显示,而不是直接映射。 - **抽象表示**: 可以通过抽象方式表示对象,如...

    freemarker中文文档

    - 在**FreeMarker**中,**模板**是包含静态文本和控制结构的文件,而**数据模型**则是一组由应用程序提供的数据对象。**FreeMarker**引擎负责读取模板,并使用数据模型中的数据填充模板中的占位符,最终生成所需的...

    freemarker中文手册.pdf

    - **数据模型**:定义了一个包含用户名称和最新产品的数据模型,该模型由开发者创建并通过FreeMarker传递给模板。 - **效果演示**:最终生成的HTML页面将根据数据模型显示具体的用户名和产品链接,实现了动态内容...

    freemarker 中午手册

    - **模板加载机制**:Freemarker 支持多种模板加载方式,如从本地文件系统、数据库或其他任何来源加载模板文件。 - **输出灵活性**:除了可以将生成的文本保存到本地文件外,Freemarker 还支持通过电子邮件发送、从 ...

    freeMarker资料

    - **名字空间管理**:使用名字空间有助于构建和维护可重用的宏库,同时避免名称冲突。 ##### 3. 通用数据模型 - **对象封装**:Java对象通过插件式对象封装在模板中表示。 - **抽象表示**:可以通过抽象(接口)...

    FreeMarker

    #### 三、FreeMarker模板语言详解 ##### 3.1 总体结构 模板文件主要由以下几部分组成: - **静态文本**:直接输出到结果中的文本。 - **表达式**:用于计算并返回一个值。 - **指令**:控制模板的流程,如循环和...

    freemarker-2.3.19教程

    - **名字空间**: 帮助构建和维护可重用的宏库,避免名字冲突问题。 - **输出转换**: 内置输出转换功能,例如 HTML 转义、压缩、语法高亮等。 #### 通用数据模型 - **对象封装**: Java 对象通过插件式对象封装器在...

    FreeMarker中文文档

    - 命名空间帮助管理和避免宏之间的名称冲突。 - 输出转换块允许对生成的输出进行处理,如HTML转义、压缩或语法高亮。 3. **通用数据模型**: - FreeMarker不直接操作Java对象,而是通过对象封装插件来暴露数据...

    Freemarker 设计指南

    命名的宏可以具有位置参数和嵌套内容,名字空间有助于建立和维护可重用的宏库。 3. 通用数据模型:FreeMarker 不是直接反射到 Java 对象,Java 对象通过插件式对象封装,以变量方式在模板中显示。可以使用抽象...

    freemarker中文手册文档.pdf

    - 支持名字空间,有助于构建和维护可重用的宏库,同时避免名称冲突问题。 - 输出转换块:在嵌套模板片段生成输出时进行HTML转义、压缩、语法高亮等操作,并支持自定义转换。 3. **通用数据模型**: - FreeMarker...

    FreeMarker 快速入门 上手

    FreeMarker 还提供了许多高级特性,如自定义指令、命名空间、空白处理等,这些特性的使用可以使模板更加灵活和强大。 以上就是关于 FreeMarker 的快速入门介绍,希望对你有所帮助。通过本教程的学习,你应该能够...

    freemarker中文手册

    例如,一个简单的FreeMarker模板可能包含如下代码: ```html &lt;title&gt;Welcome! &lt;h1&gt;Welcome ${user}! &lt;p&gt;Our latest product: ${latestProduct.url}"&gt;${latestProduct.name}! ``` 在这个模板中,`${user}`...

    freemarker指南.doc

    模板中还可以定义命名宏,支持位置参数和嵌套内容,使用名字空间避免命名冲突。 3. **通用数据模型**:FreeMarker 不直接反映Java对象,而是通过插件式对象封装,以变量形式在模板中呈现数据。这使得模板开发者可以...

    Freemarker教程 中文版

    - **名字空间管理**:通过名字空间来组织和管理宏库,避免命名冲突。 - **输出转换**:支持自定义输出转换规则,如HTML转义、压缩等。 3. **数据模型** - **对象封装**:Java对象通过特定的对象封装机制暴露给...

    FreeMarker.pdf

    根据提供的文件信息,我们可以从《FreeMarker手册》中提取出一系列关键知识点,这些知识点主要围绕着FreeMarker模板引擎的基础概念、使用方法以及高级特性展开。下面是对这些知识点的详细总结: ### 一、FreeMarker...

Global site tag (gtag.js) - Google Analytics