Daniel Dekany
2015-06-21 10:21:47 UTC
Test it, especially if it breaks something in your existing
applications, and give feedback! Final release is planned for July the
5th (that's only two weeks from now).
Download (includes documentation with full change log):
http://sourceforge.net/projects/freemarker/files/freemarker/2.3.23-rc01/freemarker-2.3.23-rc01.tar.gz/download
(Binary-only for Google App Engine:
http://sourceforge.net/projects/freemarker/files/freemarker/2.3.22/freemarker-gae-2.3.22.jar/download)
A quick overview of the most important changes (see full documentation
in the downloadable distribution):
* Listing-related (#list) specialized convenience features that
target some of the most typical tasks in templates:
* New list directive child directives, #else and #items deal with
the special cases with 0-length lists. #sep makes inserting
separators between items much easier than it was with #if +
..._has_next.
* New built-ins that act on loop variables: var?index
(deprecates var_index), var?counter (1-based index),
var?has_next (deprecates var_has_next), var?item_parity
(returns "odd" or "even"), var?item_cycle("lightRow",
"darkRow"), and some more.
* Convenience assignment operators, like in <#assign counter++> and
<#assign counter += 2>
* True ternary operator equivalent:
someBoolean?then(whenTrue, whenFalse)
* Switch as expression:
someValue?switch(case1, result1, case2, result2, ... caseN,
resultN, defaultResult)
* FTL now supports camel case for the identifiers that are part of
the template language. For example,
<#noEscape>${x?upperCase}</#noEscape> or <#setting
numberFormat="0.0"> or <#ftl stripText=true> are valid. You can
just start using camel case without configuring anything, however,
within the same template, FreeMarker will require you to use the
same naming convention for all identifiers that are part of the
template language. (Also, a certain naming convention can be
enforced for all templates from configuration.)
* More configurable template loading for FreemarkerServlet, also
loading from Servlet 3.0 META-INF/resources now works as expected
* Various bugfixes
applications, and give feedback! Final release is planned for July the
5th (that's only two weeks from now).
Download (includes documentation with full change log):
http://sourceforge.net/projects/freemarker/files/freemarker/2.3.23-rc01/freemarker-2.3.23-rc01.tar.gz/download
(Binary-only for Google App Engine:
http://sourceforge.net/projects/freemarker/files/freemarker/2.3.22/freemarker-gae-2.3.22.jar/download)
A quick overview of the most important changes (see full documentation
in the downloadable distribution):
* Listing-related (#list) specialized convenience features that
target some of the most typical tasks in templates:
* New list directive child directives, #else and #items deal with
the special cases with 0-length lists. #sep makes inserting
separators between items much easier than it was with #if +
..._has_next.
* New built-ins that act on loop variables: var?index
(deprecates var_index), var?counter (1-based index),
var?has_next (deprecates var_has_next), var?item_parity
(returns "odd" or "even"), var?item_cycle("lightRow",
"darkRow"), and some more.
* Convenience assignment operators, like in <#assign counter++> and
<#assign counter += 2>
* True ternary operator equivalent:
someBoolean?then(whenTrue, whenFalse)
* Switch as expression:
someValue?switch(case1, result1, case2, result2, ... caseN,
resultN, defaultResult)
* FTL now supports camel case for the identifiers that are part of
the template language. For example,
<#noEscape>${x?upperCase}</#noEscape> or <#setting
numberFormat="0.0"> or <#ftl stripText=true> are valid. You can
just start using camel case without configuring anything, however,
within the same template, FreeMarker will require you to use the
same naming convention for all identifiers that are part of the
template language. (Also, a certain naming convention can be
enforced for all templates from configuration.)
* More configurable template loading for FreemarkerServlet, also
loading from Servlet 3.0 META-INF/resources now works as expected
* Various bugfixes
--
Thanks,
Daniel Dekany
------------------------------------------------------------------------------
Thanks,
Daniel Dekany
------------------------------------------------------------------------------