21

Using Grails' GSP <g:set> tag, is it possible to specify the type of the variable? I want to declare an integer variable, but <g:set> always declares a sting. For example:

<g:set var="x" value="100"/>
${x.getClass()}
${x+23}

results in

class java.lang.String
10023

I'd like to declare x as an integer. I noticed that using the JSP tag <% int x=100; %> results in:

class java.lang.Integer
123

Is there a way to do this the Grails/GSP way?

Steve Kuo
  • 61,876
  • 75
  • 195
  • 257

2 Answers2

31

Use the ${} syntax when defining the value. For example:

<g:set var="x" value="${100}"/>

You can see the tag doc for g:set for more info.

Ibrahim.H
  • 1,062
  • 1
  • 13
  • 22
Jason Gritman
  • 5,251
  • 4
  • 30
  • 38
2

Just as an additional comment for someone who comes across this since it is the only useful result on the Internet for and casting/Int/Sring/etc. This example works in the case of variables:

<g:set var="printLeft" value="${offer?.metaInfo?.redeemPrintY as Integer}"/>
<g:set var="printTop" value="${offer?.metaInfo?.redeemPrintX as Integer}"/>
<g:set var="printWidth" value="${offer?.metaInfo?.redeemPrintW as Integer}"/>
<g:set var="printHeight" value="${offer?.metaInfo?.redeemPrintH as Integer}"/>

...

<area shape="rect" coords="${printLeft},${printTop},${printLeft+printWidth},${printTop+printHeight}" onClick="printOffer();" />
Michael Reed
  • 2,362
  • 23
  • 15