Thymmeleaf 2.0.9 JUST PUBLISHED

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Thymmeleaf 2.0.9 JUST PUBLISHED

danielfernandez
Administrator
Thymeleaf 2.0.9 has been just published.

This is a bugfixing release including minor modifications to some internal APIs. Some methods have been deprecated and some refactorings have taken place in order to accomodate the upcoming integration with Apache Tiles 2.

No APIs have been broken. Old methods have been deprecated and will continue to work OK until 2.1.x versions.

This new 2.0.9 version should works as a drop-in replacement for any previous 2.0.x versions. It includes the following changes from 2.0.8:


THYMELEAF CORE
-----------------

  - Added #strings.escapeXml(...) utility method.

  - Added HttpServletResponse argument to WebContext constructors in order to be able to access to the response object from Processors.

  - Modified parsing system to allow parsing templates without a root element (with several elements / no elements at all).

  - Fixed URL parameter names not allowing brackets ([,],{,})

  - Fixed URL parameter names not being repeatable.

  - Added support for server-based URLs in non-servlet-based environments.

  - Added "setAdditionalDialects()" method to TemplateEngine for being able to specify the dialects to be used besides the "standard" ones.

  - Created new org.thymeleaf.fragment and org.thymeleaf.standard.fragment packages as a refactoring of the several fragment inclusion options available for Thymeleaf dialects.

  - Added to TemplateEngine the possibility of filtering parsed templates using an IFragmentSpec in order to process only fragments of templates.

  - Created IProcessorContext as the interface defining the minimum amount of information required to execute expressions, and created the "ProcessorContext" class as the most basic implementation of this interface.

  - Added #numbers.sequence(from,to,step) utility method (step didn't exist in previous versions).

  - Modified Arguments to be an implementation of IProcessorContext.

  - Modified the StandardExpressionProcessor infrastructure to allow the specification of an IProcessorContext for executing expressions instead of a full --and heavier-- Arguments object. This allows the execution of expressions outside templates.

  - Refactored whole hierarchy of "include" and "substituteby" attribute processors in order to use the new structures in the org.thymeleaf.fragment package.

  - Modified "TemplateEngine.getConfiguration()" visibility to public.

  - Modified "TemplateEngine.isInitialized()" visibility to public.

  - Added DOMSelector.select(Node) method for easier calling of DOM selectors on single nodes.

  - Modified extraction of fragments from element and/or attribute name so that a list might be returned instead of a single Node.

  - Removed initialization requirement from DialectConfiguration.getPrefix()

  - Fixed JavaScript/Dart/Text inlining in order to output text between [[...]] exactly as it was originally output when the contained expression is not a valid Standard Expression.


THYMELEAF-SPRING3
--------------------

  - Added RequestContext variable to Model as AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE besides thymeleaf's own SpringContextVariableNames.SPRING_REQUEST_CONTEXT for better compatibility with other view-layer technologies.

  - Added an HttpServletResponse parameter to SpringWebContext constructors in order to be able to access response from processors.

  - Refactored SpringEL expression evaluation.

  - Added "viewClass" property to ThymeleafViewResolver.


Regards,
Daniel.
Reply | Threaded
Open this post in threaded view
|

Re: Thymmeleaf 2.0.9 JUST PUBLISHED

mhaberl
There is a major bug in 2.0.9 :(

expression inside *{ . } will be evaluated as null.

more precisely,

*{expression} will be null

*{expression.something} will throw a NPE.

We are waiting for 2.0.10 :)
Reply | Threaded
Open this post in threaded view
|

Re: Thymmeleaf 2.0.9 JUST PUBLISHED

danielfernandez
Administrator
You are right. It seems this got through the tests thanks to a combination of unlucky choices :-(

2.0.10 will be released today, fixing this issue. Thanks.

Regards,
Daniel.