Overview | Examples | Writing templates | Java interface
API docs | Download

JSTE: Javascript Templating Language

What is JSTE?

JSTE is a Java-based templating language for producing dynamic content, which is typically useful in web applications. JSTE's purpose is similar to that of JSP, Velocity and FreeMarker, with the key difference that JSTE uses Javascript for the computational aspects of template expansion. This enables template authors to employ the full power of Javascript, including functions, closures, objects and delegation, in creating templates.

Note, of course, that while the templating language is Javascript, the use of this engine in a Java-based web application implies that the template expansion still occurs on the server side. This is unlike Javascript-based templating mechanisms such as trimpath, which rely on the browser to perform template expansion.

The idea of using Javascript for template expansion is not new. It was available, for example, in Netscape Enterprise Server several years ago. However, the present JSTE project seems to be the first library that makes Javascript templating available for Java applications.

How is JSTE different from other templating languages?

JSTE carries a few advantages:

What is special about JSTE?

JSTE implements the idea of   “doing just one thing and doing it well.” To that end, JSTE offers only template expansion with no frills. It does not, for example, provide any framework for web programming.

JSTE tries to reuse prior work, but at the same time minimize dependencies on other components. It uses the excellent Rhino Javascript engine for executing Javascript code, but does not require any other third-party libraries.

The code uses Java generics for type safety, so you will require Java 1.5 or better to compile it. But you can use the jar files with older versions of Java.

How is JSTE licensed?

JSTE is distributed under the BSD license. It relies on the Rhino Javascript engine which is distributed under the Mozilla Public License.