Add an expression dialect to thymeleaf to access groovy's collate
Easy way to add collate
for separting lists into rows with a certain size
class Groovy { List<List> collate(List list, Integer columns) { return list.collate(columns) } } class GroovyDialect extends AbstractDialect implements IExpressionEnhancingDialect { @Override Map<String, Object> getAdditionalExpressionObjects(IProcessingContext processingContext) { return [ groovy: new Groovy() ] } @Override String getPrefix() { return "groovy" } }
Add dialects to TemplateEngine (code based approach), see additionalDialects
in XML:
def templateEngine = new TemplateEngine().with{ // ... setAdditionalDialects([new GroovyDialect()] as Set<IDialect>) return it }
Use in template: