Open Source Template Engines in Java
|Velocity is a Java-based template engine. It permits web page designers to reference methods defined in Java code. Velocity can be used to generate web pages, SQL, PostScript and other output from templates. It can be used either as a standalone utility for generating source code and reports, or as an integrated component of other systems
Go To Velocity
|FreeMarker is a template engine. It provides an easy way to generate textual (HTML, RTF, PostScript, TeX, source code, etc) output from your data and helps you separate design issues from application logic. Integrates with servlets, XML, Python and more.
Go To FreeMarker
|JBYTE - JavaBY Template Engine is a Java-based template engine. JBYTE is a general template engine used for generating any type of text document from a template. JBYTE is used mostly for generating HTML from JSP or servlets but it can also be used for generating XML, RTF, WML, e-mail text, source code and configuration files.
Go To JByte
|Jamon is a general purpose template engine written in java. Jamon has a rich feature set to support encapsulation, parameterization, functional decomposition, and reuse of presentation logic.
Go To Jamon
|StringTemplate is a java template engine (with ports for C# and Python) for generating source code, web pages, emails, or any other formatted text output. StringTemplate is particularly good at multi-targeted code generators, multiple site skins, and internationalization/localization. It evolved over years of effort developing jGuru.com. StringTemplate also generates this website and powers the ANTLR v3 code generator. Its distinguishing characteristic is that it strictly enforces model-view separation unlike other engines.
Go To StringTemplate
|Tea is a simple yet powerful template language. Tea is most commonly used for creating dynamic web pages in the TeaServlet.
Go To Tea
|JDynamiTe is a simple yet powerful tool used to create dynamic documents from \"template\" documents.
Go To JDynamiTe
|A \"bottom up\" template specification in which data knows how to insert itself into the proper place in your template.
Templates can be built from static files or from Java servlets.
Go To Better Templates for Everybody
|Jxp (Java scripted page) is a script-processor/template-engine that can execute template files containing text + java code. It contains a parser to parse the script file into an abstract syntax tree and a tree processor (JxpProcessor) that will process the syntax tree to execute the code using reflection API to produce output. Some of the main features of Jxp includes:
- java as template language. so why learn another one? ;)
- support common java language 1.4 constructs (1.5 syntax support pending)
- practical template sources management framework
- support caching of parsed syntax tree to eliminate reparse of template
- a servlet implementation to enable web-scripting
- extensible processing context for defining built-in function on the scripts
Go To jxp
|WebMacro is a 100% Java open-source template language.
WebMacro is a viable (and proven!) alternative to JavaServerPages, PHP, and ASP. It's the fundamental page technology behind several major websites such as AltaVista, but can be used to generate any kind of text content.
Go To WebMacro
|Viento is a general purpose template language written in Java. It is syntactically similar to Velocity in many ways. The most notable difference is the absence of 'special' directives. The language features (mixins, blocks, custom method names) allow simple Java tools to serve these functions and open the way for user extensions to look just as nice as the core language constructs with minimum work.
Released under the Eclipse Public License (EPL).
Go To Viento
|IKAT is the templating engine for RSF, an open source Web programming framework based on Spring. The IKAT engine is standalone and can be used without the rest of RSF.
IKAT is unique in being the first \"completely pure\" HTML templating engine. Unlike others, it not only permits *no* logical constructs (tests, branches, iterations etc.) to be expressed in the template, it allows no \"model\" references in the template and further it adds no tags to its target language - just one single attribute, the rsf:id.
Replication and branching, instead, is \"induced\" in the template structure by a unique \"structural matching\" algorithm based on a tree of lightweight \"components\" produced by the user.
Go To IKAT
|LSP is an advanced web template language based on XML technology. LSP provides powerful and easy to use presentation logic, but keeps bussines logic and technical details out of templates. LSP is compiled into Java bytecode for efficient execution.
LSP integrates with Servlets and other Java EE technology and can be used as an alternative to JSP for building web applications.
Go To LSP
|Bluprints is a JSP templating framework with zero dependencies and a simple yet powerful XML configuration. This project provides many sophisticated features such as multiple file support, namespacing, cross file/namespace extension, nesting and much more.
The XML parsing is done via SAX for performance and to reduce the failures due to XML binding frameworks. An XML schema is provided and always kept up-to-date. The API is simple and direct without hundreds of methods and classes. However, Bluprints provides many features that other JSP templating frameworks are lacking in a fraction of the code.
Bluprints is a JDK 1.5 only framework and requires no external libraries to use. It supports WebWork integration and will be supporting plain servlets, struts/actionflow and other frameworks in the future.
Go To Bluprints
|SiteMesh is a web-page layout and decoration framework and web-application integration framework to aid in creating large sites consisting of many pages for which a consistent look or feel, navigation and layout scheme is required.
SiteMesh intercepts requests to any static or dynamically generated HTML page requested through the web-server, parses the page, obtains properties and data from the content and generates an appropriate final page with modifications to the original. This is based upon the well-known GangOfFour Decorator design pattern.
Go To SiteMesh
|Dynamator is a simple but powerful tool that transforms standard HTML and XML files into server pages or programs. Dynamator was created to solve the Server Pages Maintenance Problem.
Dynamator separates HTML from program logic so completely that different page generation technologies can use the same HTML. With Dynamator, software developers don't have to maintain HTML, and HTML authors don't have to learn a programming language.
Go To Dynamator
|Transformica is a versatile and extensible code generator. It supports multiple source models including database metadata, Java source files, grammar files and custom models.
Transformica is implemented as an Ant task and uses Velocity as its template engine.
Go To Transformica
|RTFTemplate is a tool to merge a RTF template with data coming from a Java context and generate a new RTF document. The RTF template can contain custom fields, hyperlinks o defined sections to be replaced.
Go To RTFTemplate
|Hapax is a simple text templating library for Java. Hapax is suitable for constructing text output from Java code. The syntax is similar to Google's ctemplate library.
Hapax was designed to be easy to use and have minimal dependencies. Hapax does not depend on any existing web framework, and is suitable for use in servlets, scripting languages (Scala, Groovy, etc), and server-side applications.
Go To Hapax
|JCopist is a template-based document generation server based on OpenOffice.org. Its templates are regular OpenDocuments enhanced with the FreeMarker scripting language. A wide range of formats are available, eg. : ODT, PDF, RTF, HTML, MS Word, MS Excel.
Go To JCopist
|MiniTemplator is a compact template engine for HTML files.
* Available in Java, PHP and Visual Basic (VB/VBA).
* Simple syntax for template variables and blocks.
* Blocks can be nested.
* Compact, well-documented source code. A single code module.
* Documentation and sample programs available.
Go To MiniTemplator
|Xtempore is a lightweight, modular and powerful XML-based domain independent templating language. It's essentially a programming library which provides flexible tools for transforming an object (model) and an XML document (template) into another XML document.
<br/>* The language is defined as an XML schema and is thus supported in all XML-enabled development environments.
<br/>* There is no specific evaluation strategy - any number of evaluation languages or strategies can be used simultaneously.
<br/>* The core provides facilities for sharing function libraries (similar to taglibs) as well as converting values between types.
<br/>* The language and it's implementation are extensible and all extensions are bound into xml namespaces.
Go To Xtempore