set
Purpose
Set the value of a variable accessible with the GSP page.Examples
<g:set var="tomorrow" value="${new Date(today.getTime() + 24L * 60 * 60 * 1000)}" />
<g:sef var="counter" value="${1}" />
<g:each in="${list}">
${counter}. ${it} -> ${counter % 2 == 0 ? 'even' : 'odd'}
<g:set var="counter" value="${counter + 1}" /><br>
</g:each>
Using scopes:<g:set var="foo" value="${new Date()}" scope="page" />
<g:set var="bar" value="${new Date()-7}" scope="session" />
Using the body contents:<g:set var="foo">Hello!</g:set>
Description
Attributes
var
- The name of the variable
value
- The initial value to be assgined
scope
- Scope to set variable in (either "request", "page", "flash" or "session")
Source
Show Source
def set = { attrs, body ->
def scope = attrs.scope ? SCOPES[attrs.scope] : 'pageScope'
def var = attrs.var
def value = attrs.value
def containsValue = attrs.containsKey('value')
if(!scope) throw new IllegalArgumentException("Invalid [scope] attribute for tag <g:set>!")
if(!var) throw new IllegalArgumentException("[var] attribute must be specified to for <g:set>!") if(!containsValue && body) value = body() this."$scope"."$var" = value
}