2012-11-05 14 views
6

in der Geschwindigkeit Ich habe eine Variable mit dem Namen $ url, die die folgende Zeichenfolge enthält: [contentid (2,7507), contentid (2,7508), contentid (1,44551)]prüfen, ob ein String eine bestimmte Teilzeichen in Velocity enthält

Ich möchte um zu überprüfen, ob diese Zeichenfolge die Teilzeichenfolge 1.44551 enthält.

Dies ist der Code, den ich bisher geschrieben habe, aber aus irgendeinem Grunde falsch es Rückkehr:

#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 

Ich würde erwarten, dass dies wahr zurückkehren, da der 1,44551 String in dem $ url Variable vorhanden ist . Kann mir bitte jemand sagen, wo ich falsch liege?

+0

auf den ersten Blick sieht alles gut aus. Wenn Sie Ihren Test als '#if (true)' oder '#if ($ url.equals ($ url))' schreiben: Gibt es dann True zurück? Ich gehe davon aus, dass Velocity den Ausdruck bewertet. –

+2

oops, das gleiche passierte für mich (aber ich erkannte, dass das Objekt, das ich benutzen wollte, nicht ein String war!) ... sobald ich toString zuerst anrief, war es in Ordnung, dh 'messageQuery.message.JMSDestination.toString() .enthält ("DLQ") ' –

Antwort

2

Geschwindigkeit hält Objekte Werte in der Kontextkarte. Nur toString hinzufügen, um sicherzustellen, Sie auf String führen die contains Methode:

#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 
Verwandte Themen