Reputation: 63094
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
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
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