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
。它使用带有Strings
的Map
作为其模板源。在 JavaDoc 中查看更多内容。 -
对 Rhino 的实验性支持:FreeMarker 现在带有针对 Rhino 的实验性对象包装器(Java ECMAScript 实现):
freemarker.ext.rhino.RhinoWrapper
-
SimpleXxx
类的一些新实用工具方法:SimpleHash.toMap()
,SimpleSequence.toList()
。 -
错误修正:FTLLiterals 和任何其他
SimpleSequnce
-s 和SimpleHash
-es 现在可以用作DefaultWrapper
或BeansWrapper
公开的 FreeMarker 不知道的 Java 方法的参数。即,方法参数分别自动从TemplateTypeModel
-s 转换为java.util.Map
和java.util.List
。 -
错误修正:JSP 支持现在也可以在符合 JSP 2 的容器中使用。不,它还不支持 JSP 2 的新功能,只是 JSP 1.2 标记库支持在 JSP 2 容器中不起作用。
-
错误修正:当您尝试将设置值设置为
null
时,Configuration.setOutputEncoding
和setURLEscapingCharset
方法以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 中。