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