`
javatar
  • 浏览: 1700729 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

FreeMarker准备在2.4版中加入新的指令#template

    博客分类:
  • HTTL
阅读更多
FreeMarker准备在2.4版中加入新的指令#template, 用于上下文隔离包含模板. 与原有的#include相对应, #include为上下文内包含(内嵌)模板.

然而, 大家对这一新指令的命名都极不赞同.

首先template是一个名词, 不适合用于包含这样一个动作性指令名.
Attila Szegedi 回复的邮件 写道
Sorry for nitpicking, but shouldn't such a directive rather be a verb? 
I.e. #load, #render, #execute come to mind. Using a noun (#template) sounds as if you're defining something (see: #macro, #function, etc.).


中间引出大量回复, 给出了n多方案, 如:
#subtemplate, #safeinclude, #load, #exec, #render, #do. #process, #merge, #embed

赞同较多的是: #render, #process, #embed
但render(渲染)与图形学上的概念混淆, 表意不清.
process(处理)太过泛化, 这个词感觉什么地方都可用.
embed(嵌入)是比较合理的. 但似乎应该与现有的include指令名换一个才恰当. 因为embed才表示在当前上下文执行, include表示包含内容(在不同上下文执行).
Daniel Dekany 回复的邮件 写道
Should I replace all application of #include with #embed in the 2.4 Manual? #include was one of the first few directives introduced (in the Getting Started chapter). I suppose now we should propagate #embed instead. Also I wonder if #include should be deprecated in 2.4.


最后结论还没出来, 但对CommonTemplate(http://commontemplate.org)的设计很有借鉴意义, 现在CommonTemplate采用inline(内联)表示同上下文包含, include(包含)表示上下文隔离包含, 似乎将inline改成embed会更合理些, 可能会在下一版本进行变更.
2
2
分享到:
评论

相关推荐

    freemarker各种版本的jar包

    - 可能扩展了API,增加了新的功能,比如新的指令或函数,以增强模板的表达能力。 - 对模板语法的增强,例如新的控制结构或模板设计模式的改进。 4. **Freemarker 2.3.23**: - 这个版本可能包含了更多的安全修复...

    freemarker格式化缩进文本或include指令

    在这个场景中,"freemarker格式化缩进文本或include指令"主要涉及了两个重要的FreeMarker特性:格式化输出(formatting indentation)和模板包含(template inclusion)。 1. **格式化输出**: FreeMarker默认并不...

    freemarker\Freemarker教程_中文版

    Freemarker是一款强大的模板引擎,用于将数据模型与表示层分离,从而实现在Web开发中的动态页面生成。根据所提供的文件信息,我们可以详细探讨以下几个关键的知识点: ### 1. 创建配置实例 在Freemarker中,`...

    FreeMarker中文文档.pdf下载

    FreeMarker支持一系列模板指令,这些指令允许开发者在模板中嵌入更复杂的逻辑处理。常见的指令包括`<#if>`用于条件判断、`<#list>`用于循环遍历集合等。 #### 3. 表达式(Expressions) 表达式是FreeMarker中用于...

    FreeMarker+中文手册

    3. **模板语言(Template Language)**:FreeMarker的模板语言包括了一系列的指令和内置函数,如`<#if>`用于条件判断,`<#foreach>`用于循环,`<#assign>`用于赋值等。 4. **配置(Configuration)**:FreeMarker的...

    FreeMarker常用指令

    该指令用于导入 FreeMarker 模板中的所有变量,并将该变量放置在指定的 Map 对象中。import 指令的语法格式如下: <#import "/lib/common.ftl" as com> 上面的代码将导入 /lib/common.ftl 模板文件中的所有变量,...

    freemarker中文文档与包

    2. **数据模型与变量**: 在Freemarker中,数据模型是由Java对象组成的,这些对象可以通过模板语言访问。模板中的变量通常引用这些数据模型中的属性,例如`${user.name}`将输出用户对象的name属性值。 3. **模板设计...

    freemarker语法完整版

    ### Freemarker语法完整版知识点详解 #### A. 概念 **1. Scalars(标量)** - **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `...

    FreeMarker2.3.23官方中文文档

    在FreeMarker的核心概念中,它是一个基于数据驱动的模板语言。这意味着,开发者不需要关心如何将数据与HTML结合,FreeMarker会自动处理这些细节。模板文件通常包含HTML结构,以及插入数据的占位符(称为变量或指令)...

    FreeMarker中文参考手册

    - **2.4 include指令**:介绍了如何在模板中包含其他模板。 - **2.5 import指令**:解释了如何导入自定义函数或宏。 - **2.6 noparse指令**:介绍了如何避免解析某些文本。 - **2.7 compress指令**:说明了如何压缩...

    freemarker 中文乱码解决

    在处理Freemarker模板引擎时,中文乱码问题是一个常见的挑战,尤其是在国际化应用中。Freemarker是一款功能强大的模板引擎,被广泛应用于Web开发中,用于动态生成HTML、XML等文本格式的页面。然而,当涉及到非英文...

    freemarker 自定义freeMarker标签

    1. 创建自定义指令类:你需要创建一个继承自`freemarker.template.TemplateDirectiveModel`的Java类。这个类将定义你的自定义标签的行为,包括如何处理输入参数,如何处理模板模型数据,以及如何生成输出。 2. 注册...

    springboot如何使用Freemarker模版引擎

    - Freemarker模板文件(如`index.ftl`)中,可以使用`<#...>`指令和`${...}`表达式来动态生成内容。 - `${name}`:将Java对象的属性值输出到HTML。 - `<#if ...>`、`<#else>`、`<#elseif ...>`:条件判断语句。 ...

    FreeMarker_2.3.23 中文

    在2.3.19中文版手册中,读者可以期待找到关于如何创建和使用模板、如何配置FreeMarker、以及如何处理数据模型等方面的详细指导。2.3.23的手册则可能增加了新版本的更新日志、新特性的介绍和使用方法,以及可能的API...

    freemarker 教程 使用手册

    1. Servlet容器集成:在Servlet环境中,通常通过`Template`类加载模板文件,使用`Configuration`配置管理模板。 2. 数据模型设置:通过`ModelAndView`或`Map`将Java对象传递到视图,供Freemarker使用。 3. 视图...

    freemarker

    在这个过程中,Freemarker引擎会解析模板中的占位符,并用数据模型中的实际值替换它们,从而生成最终的输出文本。 #### 4. 输出到文件或流 最后一步是将生成的文本输出到目标位置,这可能是标准输出流(如屏幕显示...

    freeMarker 2.3.15 参考手册 最新版

    freeMarker 参考手册 2.3.15 参考手册 最新版

    FreeMarker教程pdf版

    本文档将深入探讨FreeMarker的核心组成部分及其使用方法,包括文本、注释、插值以及FTL(FreeMarker Template Language)指令。 #### 一、FreeMarker模板的四个基本组成部分 ##### 1. 文本 文本是模板中最直接输出...

    FreeMarker模版

    FreeMarker作为一个模板引擎,允许用户在模板中嵌入指令代码,这些代码在模板被处理时执行,并生成最终的文本文件。 在FreeMarker模板中,特定的变量和指令被大括号${}包围。例如,若模板中有${obj.newsTitle}这样...

    freemarker-2.3.23-中文手册.zip

    在Freemarker 2.3.23版中,我们首先会接触到它的核心概念,包括模板(Template)、数据模型(Data Model)和模板语言(Template Language)。模板是Freemarker工作的基础,它是纯文本文件,其中混合了Freemarker指令...

Global site tag (gtag.js) - Google Analytics