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:
- It has a low learning curve. Templating languages like FreeMarker and Velocity require you
to learn a new syntax for their programming constructs. JSTE uses Javascript for this purpose, and
virtually everyone who works with web pages is familiar with Javascript. The syntax for scriptlets and
expressions is very similar to JSP, except that where JSP uses Java for scriptlets, JSTE uses Javascript.
- It is easy to embed in your Java applications.
- It avoids the compilation cycle overhead that JSP imposes. If you make a change in your template
code, you will see its effect immediately on reloading the page, without having to compile to a Java
class.
- It is compact and fast. Its implementation is just a handful of classes.
- It can be used not just in web applications but in any context where template expansion is
needed. For example, you could use it for sending template-based mass emails from your application.
It does not require servlets or other JSDK components.
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.