StringTemplate is a great templating engine. It's powerful, simple and quite opinionated. I've come really appreciate its simple purpose: render data. No assignment, no arbitrary method invocation. It is not Turing-complete and it would make a lousy rules engine.

SiteMesh is a web-page layout and decoration framework that is my current "golden hammer" when I need to provide a consistent layout across a java web-application. It seems to fit with the way that I think about web pages a whole lot more than something like Tiles - I really prefer decoration over composition as a means of layout control.

I've used StringTemplate it in the past on java projects and for a while have wanted to create a way to integrate it with Spring Framework's MVC so I can stop using Freemarker and Velocity in Spring-heavy projects. Not that Freemarker is that bad, it's just that I really don't need or want all of the bells and whistles that come with it and allow it to be so frequently misused. All I really want is a templating engine that renders the model and does not get in my way. It just so happens that SiteMesh also makes an appearance on these projects and I've been wanting to use StringTemplate to provide layout decorators as well as Spring views.

Today I've released version 1.0 of my spring-stringtemplate integration library as a GitHub project. It provides an implementation of a Spring MVC View and ViewResolver for StringTemplate, and a decorator servlet for SiteMesh.

Feedback is always welcome.