1. Tata bahasa dasar
1. "#" digunakan untuk mengidentifikasi pernyataan skrip Kecepatan, termasuk #set, #if, #else, #end, #foreach, #end, #iinclude, #parse, #macro, dll.;
menyukai:
#if($info.imgs)
<img src="http://VeVB.COM/ydmx_lei/blog/$info.imgs" border=0>
#kalau tidak
<img src="http://VeVB.COm/ydmx_lei/blog/noPhoto.jpg">
#akhir
2. "$" digunakan untuk mengidentifikasi suatu objek (atau dipahami sebagai variabel seperti
Seperti: $i, $msg, $TagUtil.options(...), dll.
3. "{}" digunakan untuk mengidentifikasi variabel Kecepatan dengan jelas;
Misalnya pada halaman terdapat $someonename, saat ini Velocity akan menggunakan nama seseorang sebagai nama variabelnya. Jika program kita ingin menampilkan karakter nama tepat setelah variabel seseorang, maka label di atas harus diubah menjadi ${someone .
4. "!" digunakan untuk memaksa variabel yang tidak ada ditampilkan sebagai kosong.
Misalnya, ketika halaman berisi $msg, jika objek msg memiliki nilai, nilai msg akan ditampilkan di halaman. Hal ini yang tidak kita inginkan, untuk menampilkan variabel atau objek yang tidak ada dengan nilai variabel null sebagai kosong, Anda hanya perlu menambahkan tanda “!” di depan nama variabel.
Seperti: $!msg
2. Praktik terbaik di EasyJWeb
Secara teoritis, Anda dapat menggunakan semua skrip dan fungsi Velocity di templat EasyjWeb, tetapi kami tidak menyarankan Anda menggunakan terlalu banyak ekspresi skrip kompleks di templat antarmuka. Sebagai upaya terakhir, jangan menambahkan logika rumit apa pun ke templat antarmuka. apalagi menambahkan deklarasi variabel, operator logika, dll. ke templat antarmuka.
Di EasyJWeb, kami menyediakan lima pernyataan skrip templat dasar, yang pada dasarnya dapat memenuhi persyaratan semua templat aplikasi. Keempat pernyataan templat ini sangat sederhana dan dapat ditambahkan langsung oleh perancang antarmuka. Dalam banyak praktik aplikasi EasyJWeb saat ini, kita melihat bahwa hanya empat pernyataan skrip templat sederhana berikut yang dapat diterapkan di antara semua templat antarmuka:
1. $!obj secara langsung mengembalikan hasil objek.
Misal: menampilkan nilai msg objek java pada tag html. <p>$!pesan</p>
Menampilkan nilai objek msg yang diproses oleh objek HtmlUtil pada tag html <p>$!HtmlUtil.doSomething($!msg)</p>
2. #if($!obj) #else #akhir pernyataan penilaian
Misalnya: Di berbagai aplikasi open source EasyJWeb, kita sering melihat contoh pesan pesan pop-up prompt.
#jika($pesan)
<skrip>
peringatan('$!pesan');
</skrip>
#akhir
Skrip di atas berarti bahwa ketika objek pesan ada, konten berikut seperti <script> akan ditampilkan.
3. #foreach( $info dalam $list) $info.someList #end Loop untuk membaca objek dalam daftar koleksi dan memprosesnya sesuai kebutuhan.
Misalnya: skrip templat antarmuka html untuk menampilkan topik populer di beranda forum sistem forum sumber terbuka EasyJF (0.3):
#foreach( $info di $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid" target="_blank">$!info.title</a><br>
#akhir
Skrip di atas menunjukkan bahwa skrip ini menelusuri objek-objek dalam koleksi hotList1 dan menampilkan konten yang relevan dari objek tersebut.
4. #macro(macroName)#end adalah panggilan fungsi skrip (makro) dan tidak disarankan untuk penggunaan ekstensif dalam templat antarmuka.
Misalnya: Pada contoh penambahan, penghapusan, modifikasi, dan kueri yang dibuat dengan cepat menggunakan EasyJWeb Tools, Anda dapat mengklik bilah judul daftar untuk menampilkan urutan menaik dan menurun. Ini adalah konten template yang sering kita lihat di aplikasi EasyJWeb untuk menampilkan status penyortiran.
Definisi fungsi (makro), biasanya ditempatkan pertama
#makro(PesananPic $type)
#if ($orderField.equals($type))
<img src="http://VeVB.COM/ico/${orderType}.gif">
#akhir
#akhir
Panggilan spesifiknya adalah: <font color="#FFFFFF">title#orderPic("title")</font>
5. Sertakan file #inclue("nama file template") atau #parse("nama file template")
Terutama digunakan untuk menangani halaman dengan konten yang sama, seperti konten atas atau bawah setiap situs web.
Untuk cara penggunaan, Anda dapat merujuk ke aplikasi di Blog Open Source EasyJF dan Forum Open Source EasyJF!
Seperti: #parse("/blog/top.html") atau #include("/blog/top.html")
Perbedaan antara parse dan include adalah jika ada tag script Velocity pada file yang disertakan maka akan diurai lebih lanjut, sedangkan include akan ditampilkan apa adanya.
3. Tentang penggunaan #set
Sebagai upaya terakhir, jangan mendeklarasikan sendiri variabel skrip Velocity di tampilan halaman, yaitu gunakan #set sesedikit mungkin. Terkadang kita perlu menampilkan nomor seri pada halaman, tetapi objek program tidak berisi atribut nomor seri ini. Anda dapat menentukannya sendiri. Misalnya pada sistem siklik adalah sebagai berikut:
#set ($i=0)
#foreach($info di $daftar)
Nomor seri:$i
#set($i=$i+1)
#akhir
4. Ringkasan sintaksis skrip kecepatan
1. Pernyataan: #set ($var=XXX)
Sisi kiri dapat berisi konten berikut
Copy kode kodenya sebagai berikut:
Referensi variabel
String literal
Referensi properti
Referensi metode
Angka literal #set ($i=1)
Daftar Array #set ($arr=["yt1","t2"])
operator aritmatika
2. Catatan:
Baris tunggal ## XXX
Beberapa baris #* xxx
xxxx
xxxxxxxxxxxx*#
Jenis referensi referensi
3. Variabel
Dimulai dengan "$", karakter pertama harus berupa huruf. karakter diikuti oleh Pengenal VTL. (a..z atau A..Z).
Variabel dapat berisi karakter berikut:
alfabet (a..z, A..Z)
numerik (0 .. 9)
tanda hubung ("-")
garis bawah ("_")
4.Properti
$Identifier.Identifier
$pengguna.nama
Nilai nama dalam tabel hash pengguna. Serupa: user.get("name")
5. Metode
objek pengguna.getName() = $user.getName()
6. Notasi Referensi Formal
Gunakan {} untuk memisahkan nama variabel dari string
menyukai
#set ($pengguna="csy"}
${pengguna}nama
kembalikan nama csy
$nama pengguna
$!nama pengguna
Perbedaan antara $ dan $!
Ketika nama pengguna tidak ditemukan, $username mengembalikan string "$username", dan $!username mengembalikan string kosong ""
7. Tanda kutip ganda dan tanda kutip
#set ($var="halo")
tes"$var" mengembalikan teshalo
tes'$var' mengembalikan tes'$var'
Anda dapat mengubah metode pemrosesan default dengan mengatur stringliterals.interpolate=false
8. Pernyataan bersyarat
Copy kode kodenya sebagai berikut:
#jika( $foo )
<strong>Kecepatan!</strong>
#akhir
#jika($foo)
#elseif()
#kalau tidak
#akhir
Dieksekusi ketika $foo adalah null atau nilai salah dari objek Boolean.
9. Operator logika: == && ||.
10. Pernyataan loop #foreach($var in $arrays) //Koleksi berisi tiga tipe Vektor, Hashtable, atau Array berikut
#akhir
#foreach( $produk dalam $allProducts )
<li>$produk</li>
#akhir
#foreach( $kunci dalam $allProducts.keySet() )
<li>Kunci: $key -> Nilai: $allProducts.get($key)</li>
#akhir
#foreach( $pelanggan di $daftar pelanggan )
<tr><td>$velocityCount</td><td>$pelanggan.Nama</td></tr>
#akhir
11. Variabel VelocityCount didefinisikan dalam file konfigurasi
Copy kode kodenya sebagai berikut:
# Nama default penghitung loop
# referensi variabel.
directive.foreach.counter.name = kecepatanCount
# Nilai awal default dari loop
# referensi variabel penghitung.
direktif.foreach.counter.initial.value = 1
12. Sertakan file
#include( "satu.gif","dua.txt","tiga.htm" )
13. Parsing skrip impor
#parse("saya.vm")
14. #stop menghentikan eksekusi dan kembali
15. Definisikan makro Velocimacros yang setara dengan pendukung fungsi termasuk fungsi
#makro(d)
<tr><td></td></tr>
#akhir
panggilan
#D()
16. Makro dengan parameter
Copy kode kodenya sebagai berikut:
#makro( baris tabel $warna $somelist )
#foreach( $sesuatu di $somelist )
<tr><td bgcolor=$color>$sesuatu</td></tr>
#akhir
#akhir
17. Operator Jangkauan
#foreach( $foo di [1..5] )