考虑速度模板中的以下代码:
#set($brandName = $player.brand.name)
#set($brandNameExample = "NameExample")
#if($brandName == $brandNameExample)
11111
#else
22222
#end
我总是得到22222
。当然,player.brand.name = "NameExample"
。
任何人都可以解释一下为什么以及如何让它工作吗?
考虑速度模板中的以下代码:
#set($brandName = $player.brand.name)
#set($brandNameExample = "NameExample")
#if($brandName == $brandNameExample)
11111
#else
22222
#end
我总是得到22222
。当然,player.brand.name = "NameExample"
。
任何人都可以解释一下为什么以及如何让它工作吗?
我建议测试一下
#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 中有问题
好吧,我找到了解决方案:我两次调用速度:第一次没有播放器对象,第二次使用它。所以在第一次调用时,所有关于玩家的指令都不能被评估并返回 null。谢谢大家的帮助
首先将其添加到您的上下文中(请参阅官方文档:here):
context.put("StringUtils", StringUtils.class);
然后您可以从 Velocity 模板中调用StringUtils.equals()方法:
#if($StringUtils.equals($brandName, $brandNameExample))
## logic here...
#end