Date of release: 2007-01-23
This release contains support for accessing JDK 1.5 enums and public fields of classes from the templates through the BeansWrapper.
BeansWrapper can now expose public fields of objects to the template if you call the setExposeFields(true) on it. More info...
BeansWrapper can now pass any sequence model to Java methods expecting a java.util.Collection or a native Java array (including primitive arrays). More info...
BeansWrapper can now pass any sequence and collection model to Java methods expecting a java.lang.Iterable. More info...
BeansWrapper can now unwrap numeric models into correct target types when passing to Java methods expecting a primitive or boxed number. Use of various expert built-ins to manually coerce the types becomes mostly unnecessary.
Fixed a bug where BeansWrapper would pass a java.util.Collection to a method expecting a java.util.Set in certain rare cases. More info...
Support for JDK 1.5 enums in BeansWrapper and DefaultObjectWrapper. By calling the getEnumModels() method, you can retrieve a hash model that is keyed by class names and allows access to enumerated values. I.e. if you bind this hash model under name enums in the data-model, you can write expressions like enums["java.math.RoundingMode"].UP in the template. The enum values can be used as scalars and support equality and inequality comparisons. More info...
freemarker.ext.rhino.RhinoWrapper now correctly translates Rhino Undefined instance, UniqueTag.NOT_FOUND, and UniqueTag.NULL to FreeMarker undefined value.