2011-05-25 17 views

cevap

0

VTL'de bir dizi oluşturmadım, ancak dizileri VTL bağlamına geçirmedim ve bunları kullandım. VTL olarak, dizine göre dizi içeriğini alamıyor, sadece örnek olarak bu kod benim Dinamik SQL üretimi VTL Komut kopyalanır, foreach kullanın:

#foreach($col in $Columns) SUM($col.DBColumn) AS ''$col.Name''#if($velocityCount!=$Columns.Count), #end #end 

Bu nedenle, biz de 2D diziler olamaz. Bir satırda 2 nesne saklamak için bir diziye ihtiyaç duyduğumda, yeni bir sınıf tanımlamak ve bu sınıftaki nesneleri tek boyutlu diziye koymak için geçici bir çözüm kullandım.

40

Apache Velocity User Guide göre, atamaların sağ taraf türünde olabilir

  • Değişken referans
  • Liste öğesi
  • Dize değişmezi
  • Emlak Referans
  • Yöntem referans
  • sayısı değişmez
  • Arr ayList
  • Sen gibi bir ifade ile, bir Apache Velocity şablonunda, bir dizi için tüm ihtiyaçlarını tatmin edecek boş bir liste oluşturabilir

Harita:

#set($foo = []) 

veya değerleri başlatılamıyor:

#set($foo = [42, "a string", 21, $myVar]) 

sonra, Java kullanarak elemanları add yöntemi:

$foo.add(53); 
$foo.add("another string"); 

Ancak listeye bir öğe eklediğinizde, liste türü için Java .add() yönteminin bir boolean değeri döndürdüğünden dikkatli olun; örneğin, hız, "true" veya "false" temel alınarak yazdırılır. "add" işlevinin sonucu.

<span>$foo[1]</span> 

İfade üst tarafında gösterilecek:

#set($bar = $foo.add(42)) 

Dizin numaralarını kullanarak listenin elemanlarını erişebilirsiniz:

Basit çalışma etrafında bir değişkene eklenti işlevinin sonucu atayan metin "bir dize" ile bir açıklık. Bununla birlikte, bir listenin öğelerine erişmenin en güvenli yolu foreach döngülerini kullanmaktır. Bir diziye bir öğe koyarak

#set($array = []) 

da kolaydır: Bir dizi yaratmak

+0

Not olsa o $ foo.add (53); Belgedeki 'doğru' veya 'yanlış' ifadesini verir. Bunu önlemek için bir #if içine sarmak gerekir. – sproketboy

+0

Doğru veya yanlış görüntü oluşturma işlemi, yanıtta zaten yer aldı. –

+0

Oh evet üzgünüm. Henüz farkına vardım. Ekleme yöntemini void döndüren dizin parametresiyle kullanabilirsiniz. – sproketboy

3

kolay bir dizi sizin Hız versiyonundan bağlıdır dan

$array.add(23) 

unsurunu alınıyor. Hız 1'de .6

$array.get($index) 

Velocity 1.7 beri klasik formu kullanarak kullanmalıdır:

$array[$index] 
İlgili konular