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设置将被忽略。

  • 现在BeansWrapperDefaultObjectWrapperSimpleObjectWrapper支持使用Character键在Map -s(例如myHash["a"])中具有 1 个字符长的字符串的查找。简而言之,在特殊情况下,当哈希查询失败时,如果字符串长度为 1 个字符,它将在基础 Map 中检查Character键。 (错误跟踪器条目[1299045] FreeMarker 不支持使用字符键进行 Map 查找。)

  • 新属性strict已添加到BeansWrapperDefaultObjectWrapperSimpleObjectWrapper。如果此属性为true,则尝试在 Bean 类中不存在的模板中正确读取 Bean(如myBean.aProperty)(而不是仅保留null值)将导致InvalidPropertyException,而在true中则无法抑制模板(甚至不使用myBean.noSuchProperty?default('something'))。这样?default('something')?exists以及类似的内置函数可用于处理值为null的现有属性,而不会在属性名称中隐藏错别字。错别字总是会导致错误。但是请注意,它与 FreeMarker 的基本方法背道而驰,因此仅当您 true 知道自己在做什么时才使用此功能。

  • 错误修正:printStackTrace(...)中的[1426227] NullPointerException

  • 错误修复:[1386193]ArithmeticEngine中被零除