Steve Kuo
Steve Kuo

Reputation: 63094

Grails GSP <g:set> tag set as integer?

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?

Upvotes: 22

Views: 25054

Answers (2)

Jason Gritman
Jason Gritman

Reputation: 5301

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.

Upvotes: 32

Michael Reed
Michael Reed

Reputation: 2382

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();" />

Upvotes: 2

Related Questions