Attention For MVEL 1.2 and 1.3, goto the Templating Guide. |
This page contains a list of all orb-tags available out-of-the-box in the MVEL 2.0 templating engine.
@{} Expression Orb
The expression orb is the most rudimentary form of orb-tag. It contains a value expression which will be evaluated to a string, and appended to the output template. For example:
Hello, my name is @{person.name}
@code{} Silent Code Tag
The silent code tag allows you to execute MVEL expression code in your template. It does not return a value and does not affect the formatting of the template in any way.
@code{age = 23; name = 'John Doe'}
@{name} is @{age} years old.
This template will evaluate to: John Doe is 23 years old.
@if{}-@else{} Control Flow Tags
The @if{} and @else{} tags provide full if-then-else functionality in MVEL Templates. For example:
@if{foo != bar}
Foo not a bar!
@else{bar != cat}
Bar is not a cat!
@else{}
Foo may be a Bar or a Cat!
@end{}
Termination of blocks All blocks in MVEL Templates must be terminated with an @end{} orb, except in cases of an if-then-else structure, where @else{} tags denote the termination of the previous control statement. |
@foreach{} Foreach iteration
The foreach tag allows you to iterate either collections or arrays in your template. Note: that the syntax for foreach has changed in MVEL Templates 2.0 to standardize the foreach notation with that of the MVEL language itself.
@foreach{item : products}
- @{item.serialNumber}
@end{}
MVEL 2.0 requires you specify an iteration variable. While MVEL 1.2 assumed the name item if you did not specify an alias, this has been dropped due to some complaints about that default action.
@include{} Include Template File
You may include a template file into an MVEL template using this tag.
@include{'header.mv'}
This is a test template.
You may also execute an MVEL expression inside an include tag by adding a semicolon after the template name:
@include{'header.mv'; title='Foo Title'}
@includeNamed{} Include a Named Template
Named templates are templates that have been precompiled and passed to the runtime via a TemplateRegistry, or templates that have been declared within the template itself. You simply include
You may also execute MVEL code in an @includeNamed{} tag, just as with the @include{} tag.
@includeNamed{'fooTemplate'}
@includeNamed{'footerTemplate', showSomething=true}
@declare{} Declare a Template
In addition to including external templates from external files, and passing them in programmatically, you can declare a template from within a template. Which allows you to do things like this:
@declare{'personTemplate'}
Name: @{name}
Age: @{age}
@end{}
@includeNamed{'personTemplate'; name='John Doe'; age=22}