Introduction to Velocity
Velocity is a simple yet powerful Java-based template engine that renders data from plain Java objects to text, xml, email, SQL, Post Script, HTML etc. The template syntax and rendering engine are both easy to understand and quick to learn and implement.
Capabilities reach well beyond the realm of the web (ex. xdoclet, middlegen, Intellij etc.) to enable programmers to focus on writing functional code, while in parallel, template designers can directly modify templates to create attractive output. In webapps, Model-View-Control (MVC) separation can be strongly enforced because templates do not contain "code". Or, at the programmers discretion "tools" can be made available in the template for more direct access to data.
VelocityTools is a sub-project which contains extensions aimed at solving common web and non-web problems. For example, GenericTools provide Date/Number formatting, Math operations, and more. VelocityView provides a time-tested servlet which can render *.vm files in web applications. Finally, VelocityStruts builds upon this foundation to give Struts developers a robust and easy-to-implement alternative to JSP. Additional non-web examples are Anakia and DVSL which use Velocity for "easier than XSLT" transformations of XML.
More details and the official documentation are on the Velocity Home Page. Be sure to read the Overview, Getting Started, and the Web Application Guide. You'll also want to check out the Velocity user list], or post your question to the [http://velocity.apache.org/contact.html.
This Wiki contains community and developer-oriented content. Please feel free to add new articles, FAQ entries, or code examples. If you've created a website or application that uses Velocity, add it to the PoweredByVelocity page!
Resources: Code and Articles
- VelocityNews – Announcements and other recent news about Velocity
- PublishedArticlesAndBooks – Published articles and books on Velocity
- CommunityArticles – User contributed articles, blog entries, comparisons, and "How-To's"
- ContributedCode – User contributed templates, code and other examples
- VelocityEditors – Plugins to various editors and IDE's.
- PoweredByVelocity – List of sites, applications, and frameworks which use Velocity
How to Get Involved
- GetInvolved - quick intro to getting started
- RoadMap – where Velocity is headed
- GettingYourPatchCommitted – just what it says
- ExternalBugs – discussion of bugs in the JVM and third party libraries
- CodeStandards – read this before submitting code or patches
- DocumentationGuidelines – read this before writing documentation
- GoogleSummerOfCode2007 – The Google Summer Of Code 2007 participants
Architecture Discussions & Debates
Discussions/proposals/votes concerning various issues around the future architecture of Velocity.
- VelocitySite – How the new Velocity Site (starting with 1.5) will look like and how it is built.
- VelocityDocs – How can we improve the quality of the Velocity documentation
- Velocity15ReleaseNotes – Release Notes compilation for the 1.5 release
- VelocityDocbook – The Docbook based Documentation for 1.5 and its framework
- EditXdocs – Use XMLMind to visually edit the xdoc Documentation
- DebuggingWithinIde – How to debug / run JUnit tests in an IDE
- ReleaseProcess – What needs to be done when building and releasing Velocity 'for real'
- ZoneLogin – Information for Logins on velocity.zones.apache.org
- RebuildSites – How to rebuild the various velocity web sites
- WantedPages - linked pages that do not exist
- OrphanedPages - pages not linked to from anywhere
- PageSize EventStats/HitCounts EventStats/UserAgents - stats and graphs