Grails GSP <g:set> 标签设置为整数?

Posted

技术标签:

【中文标题】Grails GSP <g:set> 标签设置为整数?【英文标题】:Grails GSP <g:set> tag set as integer? 【发布时间】:2010-12-26 02:25:15 【问题描述】:

使用 Grails 的 GSP &lt;g:set&gt; 标签,是否可以指定变量的类型?我想声明一个整数变量,但&lt;g:set&gt; 总是声明一个字符串。例如:

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

结果

class java.lang.String
10023

我想将x 声明为整数。我注意到使用 JSP 标记 &lt;% int x=100; %&gt; 会导致:

class java.lang.Integer
123

有没有办法通过 Grails/GSP 方式做到这一点?

【问题讨论】:

【参考方案1】:

定义value 时使用$ 语法。例如:

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

您可以查看the tag doc for g:set 了解更多信息。

【讨论】:

&lt;% x = 100 %&gt;相比,设置变量的首选方式是什么?【参考方案2】:

作为对遇到此问题的人的附加评论,因为它是 Internet 上唯一有用的结果,用于和 cast/Int/Sring/etc。此示例适用于变量:

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

【讨论】:

以上是关于Grails GSP <g:set> 标签设置为整数?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 GSP 之外使用 grails 标签吗?

比较 Grails GSP 中的字符串

Grails的GSP页面中增加无条件跳转的方法。

如何将部分模板加载到grails中的div中

通过 Grails 中 gsp 的参数发送 LocalTime 对象

仅在生产环境中编码的 Grails GSP 表达式