2012-11-05 14 views
6

W Velocity Mam zmienną o nazwie $ url, który zawiera następujący ciąg: [ContentID (2,7507), ContentID (2,7508), ContentID (1,44551)]Sprawdzanie, czy ciąg zawiera konkretny podciąg w Velocity

chcę aby sprawdzić, czy ten ciąg zawiera podłańcuch 1.44551.

Jest to kod pisałem do tej pory, ale z jakiegoś powodu to powrót fałsz:

#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 

spodziewałbym to być powrót prawda, jak 1,44551 podciąg jest obecna w zmiennej $ url . Czy ktoś może mi powiedzieć, dokąd zmierzasz?

+0

wygląda dobrze na pierwszy rzut oka. Jeśli napiszesz test jako '#if (true)' lub '#if ($ url.equals ($ url))': czy zwróci True wtedy? Zgaduję, co robię, upewnij się, że Velocity ocenia ekspresję. –

+2

oops, to samo działo się dla mnie (ale zdałem sobie sprawę, że obiekt, który próbowałem użyć zawiera nie był ciągiem!) ... raz wezwał doString najpierw było w porządku, tj. 'MessageQuery.message.JMSDestination.toString() .contains ("DLQ") ' –

Odpowiedz

2

Prędkość zawiera wartości obiektów w mapie kontekstowej. Wystarczy dodać toString, aby upewnić się wykonać na String metodę 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 
Powiązane problemy