Jakarta Velocity

From Wikipedia, the free encyclopedia

Apache Velocity
Jakarta Velocity Logo
Developer: Apache Software Foundation
Latest release: 1.5 / March 6, 2007
OS: Cross-platform
Use: template engine
License: Apache 2.0 licence
Website: http://velocity.apache.org/

This article is about Velocity as template engine. For other meanings, see velocity (disambiguation).

Apache Velocity is an open source package directed by the Apache Software Foundation. Velocity is a Java-based template engine that provides a simple yet powerful template language to reference objects defined in Java code. Its aim is to ensure clean separation between the presentation tier and business tiers in a Web application (see model-view-controller design pattern). Some common types of applications which use Velocity are:

  • Web applications: Web designers create HTML pages with placeholders for dynamic information. The page is processed with VelocityViewServlet or any of a number of frameworks which support Velocity. This approach to web application development is called Model-view-controller (MVC), and is intended to be a direct replacement for applications developed with JSP or PHP.
  • Source code generation: Velocity can be used to generate Java source code, SQL, or PostScript, based on templates. The PoweredByVelocity page lists a number of open source, and commercial development software packages which use Velocity in this manner.
  • Automatic emails: Many applications generate automatic emails for account signup, password reminders, or automatically sent reports. Using Velocity, the email template can be stored in a text file, rather than directly embedded in Java code.
  • XML transformation: Velocity provides an ant task, called Anakia, which reads an XML file and makes it available to a Velocity template. A common application is to convert documentation stored in a generic "xdoc" format into a styled HTML document.

[edit] Code Example

The following template:

## Velocity Hello World
<html>
<body>
#set( $foo = "Velocity" )
## followed by
Hello $foo World!
</body>
</html>

processed by Velocity will produce the following text:

<html>
<body>
Hello Velocity World!
</body>
</html>

The syntax and overall concept of the Apache Velocity templates is very similar to the syntax of the older WebMacro template engine which is now also an open source project.

[edit] See Also

[edit] External links

In other languages