0

我正在尝试让 Velocity 输出以下 Javascript 代码:

if ((whichOne+1) <= numCallouts ) {
whichOne = whichOne + 1; } else {
whichOne = 1;
     }

每当我尝试让 Velocity 打印 > 或 < 时,它都会将其表示为 & gt; 或 & lt;,这对我没有帮助,因为我试图让它生成 Javascript。我试过了:

#set ( $gt = ">" )

但即使这样也最终成为 & gt;

提前致谢。

4

3 回答 3

1

我对 Velocity 也有同样的问题 - 但是,问题是我使用 Velocity 作为第三方嵌入式语言,并且无权更改 Velocity 设置。

不幸的是,我能找到的唯一解决方案是在不显式使用大于/小于的情况下重写代码,诚然这很糟糕,但这一切都是为了让它工作......

以下是一个示例解决方法,您尝试查看一个数字是否大于另一个数字:

if (n1 > n2) //Doesn't work because velocity turns this into if (n1 &gt; n2)

if (n1 != n2)
{
    diff = n1 - n2;
    abs = abs(n1 - n2);
    if (diff / abs == 1) //Greater than
    else //if == -1 then less than
}
else //Equal
于 2011-04-07T20:51:48.700 回答
1

这不是默认行为,我能想到为什么会发生这种情况的唯一原因是如果您在您的或 Velocity 初始化代码中ReferenceInsertionEventHandler配置了事件。EscapeHtmlReferencevelocity.config

这是有关活动的更多信息

于 2010-04-01T21:34:19.660 回答
1

也许您可以使用此处描述的替代符号:

http://velocity.apache.org/engine/devel/vtl-reference-guide.html#aifelseifelse_-_Output_conditional_on_truth_of_statements

所以尝试使用if (n1 gt n2).

于 2012-08-27T12:32:03.263 回答