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.