Advanced Control Flow - Velocity
Velocity Generator
If called from a Flowscript, the Cocoon Velocity Generator provides access to the immediate properties of the context object passed to cocoon.sendPage and cocoon.sendPageAndWait. In addition, the current WebContinuation is also available as a variable named $continuation. You would typically access its id:
<form action="$continuation.id">
You can also reach previous continuations by using the getParent() function:
<form action="$continuation.getParent().id" >
In addition the following implicit objects are always available in the Velocity context:
- Request $request : The current Cocoon request
- Response $response : The Cocoon response associated with the current request
- Session $session : The Cocoon session associated with the current request
- Context $context : The Cocoon context associated with the current request
- org.apache.avalon.framework.parameters.Parameters $parameters : Any parameters passed to the generator in the pipeline
Cocoon installs a Velocity introspector that makes it possible for you to access JavaScript objects and arrays in your templates, as well as Java objects. For example, assuming you had a Flowscript like this:
sendPage("myTemplate.vm", {colors: ["red", "blue", "yellow"]});
You could do this in myTemplate.vm:
<select name="colors"> #foreach ($color in $colors) <option value="$color">$color</option> #end </select>
Errors and Improvements? If you see any errors or potential improvements in this document please help us: View, Edit or comment on the latest development version (registration required).