PlayRythm module documentation
Welcome to PlayRythm module documentation. This documentation is intended for the 1.0.0-20120717 release and might be significantly differ from previous module version’s documentation.
Check the version history.
PlayRythm features
PlayRythm is yet another template engine plugin for Play!Framework 1.2x version:
- Static and strong typed pure Java template. Yes it’s like Japid and Jamon
- Razor like syntax
- Easy to integrate with Play and migrate your groovy template one by one
- Your existing controllers doesn’t need to be changed
- Your existing mailers doesn’t need to be changed
- Once an new template file under
app/rythmfolder created in the corresponding path, Rythm will take over; all other groovy templates still works - Great Error reporting on parsing, compilation and excuting errors, using Play-2.0 style!
- Automatic escape expression output, like Groovy and unlike Japid
- High performance at Japid level
- Support layout and tag, you get all you have in Groovy template, actually even more
- (Play specific) Support FastTags and JavaExtensions with constraints
- (Play specific) Support properties enhancement to template class
- Tag invocation decorations and chain them together
- Template content decorations and chain them together
- (Play specific) Invoke controller action method directly from within your template
- Include other template inline (not the same as tag invocation)
- (Play specific) New
Cache4annotation to mark on controller action method - (Play specific) Support GAE and other PaaS like Heroku
String Interpolation Mode
ToString Mode
There is a live demo app running on GAE for your reference
Template Syntax at a glance
Based on Rythm template engine, PlayRythm module provides an easy to read/write template language which is very like that is used in .Net MVC’s Razor template engine. Here is one rythm template example:
@extends(main)
@args List<User> users
...
<ul>
@for(User user: users) {
@if (!user.disabled()) {
<li class="@user_parity">
<span>@user_index</span>
<a href="@url(User.show(user.getId()))">@user.getName()</a>
</li>
}
}
</ul>
Use PlayRythm template engine (Play specific)
1. Add PlayRythm into your conf/dependencies.yml file:
# Application dependencies
require:
- play -> rythm
Don’t forget run play deps --sync to download rythm module after you updated your conf/dependencies.yml file
2. Create the template file in app/rythm folder.
The layout of the folder should be the same as your app/views folder.
Rythm can stay with your groovy templates. Suppose you have a controller action Application.index(), if you have Application/index.html file put into app/rythm folder, then Rythm template engine will execute it. If not then your Application/index.html file in app/views folder will be picked up and processed by Groovy template engine. Please refer to Integration Guide for more information