比较字符串与速度

时间:2013-02-18 08:36:56

标签: velocity string-comparison

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

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

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

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

有人可以解释我为什么以及如何让它工作?

3 个答案:

答案 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