在Velocity中检查字符串是否包含特定子字符串

22
在Velocity中,我有一个名为$url的变量,其中包含以下字符串:[ContentId(2.7507), ContentId(2.7508), ContentId(1.44551)]
我想检查该字符串是否包含子字符串1.44551。
这是我到目前为止编写的代码,但出于某种原因它返回False:
#if($url.contains("1.44551"))
<p>The article content id is 1.44551</p>
#else
<p>The article content id isn't 1.44551</p>
#end

我期望这个返回True,因为1.44551子字符串在$url变量中存在。请问有人可以告诉我错在哪里吗?


乍一看似乎没问题。如果你将测试写成 #if(true) 或者 #if($url.equals($url)):那么它会返回 True 吗?我想我要表达的是,确保 Velocity 正确地评估了表达式。 - Evan Haas
2
哎呀,我也遇到了同样的问题(但是我意识到我尝试使用contains的对象不是字符串!)...一旦我先调用了toString,它就没问题了,即messageQuery.message.JMSDestination.toString().contains("DLQ") - Wayne Earnshaw
1个回答

22

Velocity在上下文映射中将值存储为对象

如果您想执行字符串方法,请添加toString以确保您在字符串上执行contains方法:

 #if($url.toString().contains("1.44551"))
<p>The article content id is 1.44551</p>
#else
<p>The article content id isn't 1.44551</p>
#end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接