8

考虑速度模板中的以下代码:

#set($brandName = $player.brand.name)
#set($brandNameExample = "NameExample")

#if($brandName == $brandNameExample)
    11111
#else
    22222
#end

我总是得到22222。当然,player.brand.name = "NameExample"

任何人都可以解释一下为什么以及如何让它工作吗?

4

3 回答 3

4

我建议测试一下

#set($brandName = "NameExample")
#set($brandNameExample = "NameExample")
#if($brandName == $brandNameExample)
11111
#else
22222
#end

如果它有效,那么我会尝试输出 $player, $player.brand, $player.brand.name 你需要确保 $player.brand.name - 保持正确的值。- 区分大小写?- 确定“$player.brand.name”的拼写正确吗?

我认为您只是在对象 $player 中有问题

于 2013-02-18T10:20:29.193 回答
1

好吧,我找到了解决方案:我两次调用速度:第一次没有播放器对象,第二次使用它。所以在第一次调用时,所有关于玩家的指令都不能被评估并返回 null。谢谢大家的帮助

于 2013-02-18T15:05:55.423 回答
0

首先将其添加到您的上下文中(请参阅官方文档:here):

context.put("StringUtils", StringUtils.class);

然后您可以从 Velocity 模板中调用StringUtils.equals()方法:

#if($StringUtils.equals($brandName, $brandNameExample))
    ## logic here...
#end
于 2021-05-28T07:22:17.543 回答