apache > cocoon

- Home

# 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).