2.3.5
Page Contents
发布日期:2006-03-11
*此版本由于存在严重错误而被撤回。请不要使用它!当然,它的所有新功能都包含在 FreeMarker 2.3.6. *中。
一些新功能和一些错误修正。
FTL 方面的更改
-
错误修复:[1435847]替代语法不适用于 Comments
-
错误修复:使用新的方括号语法,可以使用
>
关闭标签。现在只能用]
关闭它。 -
错误修正:如果
ftl
指令不在自己的行中,则使用ftl
指令[1324020]ParseException
-
错误修正:[1404033]
eval
内置失败并进行了哈希连接
Java 方面的更改
-
添加了新的
Configuration
级别设置tagSyntax
。这将确定其中没有ftl
指令的模板的语法(尖括号语法 VS 方括号语法)。因此,现在您可以选择默认使用新的方括号语法。但是,建议使用自动检测(yourConfig.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX)
),因为它将是默认值,从 2.4 开始。自动检测根据模板的第一个 FreeMarker 标签的语法选择语法(可以是任何 FreeMarker 标签,而不仅仅是ftl
)。请注意,与以前的版本一样,如果模板使用ftl
指令,则ftl
指令的语法确定模板的语法,而tagSyntax
设置将被忽略。 -
现在
BeansWrapper
,DefaultObjectWrapper
和SimpleObjectWrapper
支持使用Character
键在Map
-s(例如myHash["a"]
)中具有 1 个字符长的字符串的查找。简而言之,在特殊情况下,当哈希查询失败时,如果字符串长度为 1 个字符,它将在基础 Map 中检查Character
键。 (错误跟踪器条目[1299045] FreeMarker 不支持使用字符键进行 Map 查找。) -
新属性
strict
已添加到BeansWrapper
,DefaultObjectWrapper
和SimpleObjectWrapper
。如果此属性为true
,则尝试在 Bean 类中不存在的模板中正确读取 Bean(如myBean.aProperty
)(而不是仅保留null
值)将导致InvalidPropertyException
,而在true
中则无法抑制模板(甚至不使用myBean.noSuchProperty?default('something')
)。这样?default('something')
和?exists
以及类似的内置函数可用于处理值为null
的现有属性,而不会在属性名称中隐藏错别字。错别字总是会导致错误。但是请注意,它与 FreeMarker 的基本方法背道而驰,因此仅当您 true 知道自己在做什么时才使用此功能。 -
错误修正:
printStackTrace(...)
中的[1426227]NullPointerException
-
错误修复:[1386193]在
ArithmeticEngine
中被零除