2.3.3

Page Contents

发布日期:2005-06-23

一些新功能和大量错误修正。

Attention:

  • 如果您正在使用 Log4J 日志记录,则从现在起至少需要 Log4J 1.2. 这是由于 Log4J API 中的不兼容更改。

  • 如果您自己构建 FreeMarker:从现在起至少需要 JavaCC 3.2(而不是 JavaCC 2.1)和至少 Ant 1.6.1(而不是 Ant 1.5.x)。这不会影响使用该发行版随附的freemarker.jar的用户。

FTL 方面的更改

  • 内置用于格式化“计算机受众”而不是人类受众的数字的内置代码:c。它应该用于必须使用 Java 语言格式的数字,而不管数字格式和语言环境设置如何,例如用于数据库记录 ID(用作 URL 的一部分或用作 HTML 表单中的不可见字段值),或用于打印 CSS/JavaScript 数字 Literals。

  • 内置的用于序列的列/表格显示:chunk

  • sequence slice和子字符串运算符现在允许省略最后一个索引,在这种情况下,它默认为最后一个序列项或字符的索引。示例:products[2..]。 (此外,数值范围 Literals现在允许省略最终数字,在这种情况下,默认为无穷大。例如:5..。)

  • 错误修正:如果要替换的字符串为"",则?replace永远可以工作。

Java 方面的更改

  • 新模板加载器:freemarker.cache.StringTemplateLoader。它使用带有StringsMap作为其模板源。在 JavaDoc 中查看更多内容。

  • 对 Rhino 的实验性支持:FreeMarker 现在带有针对 Rhino 的实验性对象包装器(Java ECMAScript 实现):freemarker.ext.rhino.RhinoWrapper

  • SimpleXxx类的一些新实用工具方法:SimpleHash.toMap()SimpleSequence.toList()

  • 错误修正:FTLLiterals 和任何其他SimpleSequnce -s 和SimpleHash -es 现在可以用作DefaultWrapperBeansWrapper公开的 FreeMarker 不知道的 Java 方法的参数。即,方法参数分别自动从TemplateTypeModel -s 转换为java.util.Mapjava.util.List

  • 错误修正:JSP 支持现在也可以在符合 JSP 2 的容器中使用。不,它还不支持 JSP 2 的新功能,只是 JSP 1.2 标记库支持在 JSP 2 容器中不起作用。

  • 错误修正:当您尝试将设置值设置为null时,Configuration.setOutputEncodingsetURLEscapingCharset方法以NullPointerException终止,这对于这些设置是合法的。

  • 错误修正:如果要替换的字符串为"",则freemarker.template.utility.StringUtil.replace(...)永远可以工作。

  • 错误修正:Log4J 日志记录已更新为与即将推出的 Log4J 1.3 兼容。请注意,现在 FreeMarker 将至少需要 Log4J 1.2.

  • 错误修正:由于引入了enum关键字,因此 FreeMarker 并不是从 J2SE 1.5 的源代码构建的。

  • 错误修正:SimpleSequence.synchronizedWrapper()的返回值未正确同步。与SimpleHash.synchronizedWrapper()相同。

  • 错误修正:BeansWrapper和覆盖的 bean 方法/属性存在问题。 (详细信息:错误跟踪器条目#1217661#1166533)

  • 错误修正:如果在数据模型中定义了Request属性,则无法访问 JSP 标记库(详细信息:错误跟踪器条目#1202918)。

  • 错误修正:各种次要的解析器故障是固定的。

Other changes

  • 手动改进,尤其是在 FAQ 中。