(Quick Reference)

render

Description

Renders a GSP template and caches the result so that the next time the same template is rendered it doesn't have to be evaluated again. Optionally, a key may be provided which can be helpful if the cached content is different per user, for example.

This tag behaves just like the g:render tag provided by Grails except this one caches the rendered result so the template doesn't have to be re-evaluated each time it is rendered.

By default the key used in the cache is the path to the template. If the same template is rendered multiple times with a different model, an explicit key should be provided, otherwise the separate invocations (with different models) will share the same cache entry.

<cache:render template="myTemplate" model="[user: currentUser]" key="${currentUser.id}"/>

Note that the key's namespace is confined to a particular template. This means that if there are 2 separate GSP templates cached with the same key value, the 2 will not collide with each other. Each cached GSP template has its own set of keys.

Examples

<cache:render template="myTemplate" model="[name: 'Some Value']"/>

<cache:render template="myTemplate" model="[name: 'Some Value']" key="${currentUser.id}"/>

<cache:render template="myTemplate" model="[name: 'Some Value']" key="${currentUser.id}" ttl="${60*60*24*7}" />

Attributes

  • template (required) - The name of the template to apply
  • key (optional) - An optional key that may be provided to allow for different instances of the rendered template to be held in the cache, presumably with different content.
  • contextPath (optional) - the context path to use (relative to the application context path). Defaults to "" or path to the plugin for a plugin view or template.
  • bean (optional) - The bean to apply the template against
  • model (optional) - The model to apply the template against as a java.util.Map
  • collection (optional) - A collection of model objects to apply the template to
  • var (optional) - The variable name of the bean to be referenced in the template
  • plugin (optional) - The plugin to look for the template in
  • ttl (optional) - An optional ttl (seconds) may be provided to allow the blocks to automatically evict a specified number of seconds after first insertion.

See the documentation for the core g.render tag for details on each of the optional attributes.