FreeMarker
FreeMarker provides an easy way to get data from Java servlets into Web pages, and helps you keep graphic design separate from application logic. To use it, you encapsulate HTML in templates. These get compiled for you into Template objects, which generate HTML dynamically, using data provided by your servlets. The template language is powerful and intuitive, the compiler is fast, and the output approaches the speed of static HTML pages.