2012-11-05 23 views
6

In Velocity ho una variabile chiamata $ url che contiene la seguente stringa: [contentid (2,7507), ContentID (2,7508), ContentID (1,44,551 mila)]Verificare se una stringa contiene una particolare stringa in Velocity

voglio per verificare se quella stringa contiene la sottostringa 1.44551.

Questo è il codice che ho scritto finora, ma per qualche motivo è il ritorno 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 

mi si aspetterebbe che questo sia restituendo vero, come la sottostringa 1,44,551 mila è presente nella variabile $ url . Per favore qualcuno può dirmi dove sto andando male?

+0

guarda bene a prima vista. Se scrivi il tuo test come '#if (true)' o '#if ($ url.equals ($ url))': restituisce True allora? Immagino che quello che sto ottenendo sia, assicurati che Velocity stia valutando l'espressione. –

+2

oops, la stessa cosa stava accadendo per me (ma mi sono reso conto che l'oggetto che stavo cercando di usare contiene non era una stringa!) ... una volta che ho chiamato toString per prima cosa andava bene 'messageQuery.message.JMSDestination.toString() .contains ("DLQ") ' –

risposta

2

La velocità contiene valori di oggetti nella mappa di contesto. Basta aggiungere toString per assicurarsi che si esegue sulla stringa del metodo 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 
Problemi correlati