Pengulangan di Thymeleaf

1. Gambaran keseluruhan

Thymeleaf adalah mesin templat Java yang serba boleh untuk memproses dokumen XML, XHTML dan HTML5 .

Dalam tutorial ringkas ini, kita akan melihat bagaimana kita dapat melakukan lelaran dengan Thymeleaf, bersama dengan beberapa ciri lain yang disediakan oleh perpustakaan.

Untuk maklumat lebih lanjut mengenai Thymeleaf, lihat artikel pengenalan kami di sini.

2. Pergantungan Maven

Untuk membuat contoh ini, kami akan menggunakan perpustakaan Spring Framework bersama dengan perpustakaan Thymeleaf.

Di sini kita dapat melihat kebergantungan kita (thymeleaf dan thymeleaf-spring):

 org.thymeleaf thymeleaf 3.0.11.RELEASE   org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

3. Contoh Persediaan

Sebelum kita masuk ke lapisan pandangan, mari buat struktur MVC untuk contoh kita.

Bermula dengan kod coretan lapisan model:

public class Student implements Serializable { private Integer id; private String name; // standard contructors, getters, and setters }

Mari juga berikan kaedah pengawal yang bertanggungjawab memuatkan model dan mengembalikannya ke lapisan pandangan:

@GetMapping("/listStudents") public String listStudent(Model model) { model.addAttribute("students", StudentUtils.buildStudents()); return "listStudents.html"; }

Dalam contoh kami di atas kaedah buildStudents () hanya mengembalikan senarai objek Pelajar yang kemudian kami tambahkan ke model .

4. Yang : setiap Atribut

Dalam Thymeleaf, lelaran dicapai dengan menggunakan atribut th: masing-masing .

Salah satu perkara menarik mengenai atribut ini ialah ia akan menerima dan melakukan lelaran ke atas beberapa jenis data yang berbeza , seperti:

  • objek yang melaksanakan java.util.Iterable
  • objek yang melaksanakan java.util.Map
  • tatasusunan
  • objek lain diperlakukan seolah-olah itu adalah senarai bernilai tunggal yang mengandungi satu elemen

Sekarang mari kita gunakan th: setiap atribut dengan data yang kita tetapkan dalam contoh kita di atas:

Coretan kod menunjukkan th: setiap berulang pada senarai Pelajar kami . Atribut model diakses menggunakan notasi $ {} , dan setiap elemen senarai diteruskan ke badan gelung melalui pemboleh ubah pelajar .

5. Pemboleh ubah Status

Thymeleaf juga membolehkan mekanisme yang berguna untuk mengikuti proses lelaran melalui pemboleh ubah status .

Pemboleh ubah status memberikan sifat berikut:

  • indeks : indeks lelaran semasa, bermula dengan 0 (sifar)
  • kiraan : bilangan elemen yang diproses setakat ini
  • ukuran : jumlah elemen dalam senarai
  • genap / ganjil : memeriksa sama ada indeks lelaran semasa genap atau ganjil
  • pertama : memeriksa sama ada lelaran semasa adalah yang pertama
  • terakhir : memeriksa sama ada lelaran semasa adalah yang terakhir

Mari lihat bagaimana pemboleh ubah status berfungsi dalam contoh kami:

Di sini, kami memasukkan harta iStat.odd untuk menilai keadaan dan menetapkan gaya berani untuk baris semasa. Hal yang sama dilakukan pada penilaian berikutnya, tetapi kali ini kita menggunakan iStat.even untuk mencetak nilai melalui atribut HTML alt / title.

Sekiranya kita menghilangkan penciptaan pemboleh ubah status secara eksplisit (disajikan sebagai iStat dalam contoh kita), kita boleh memanggil pemboleh ubah status kita dengan hanya menggunakan studentStat , yang merupakan agregasi pelajar berubah dengan akhiran Stat.

6. Kesimpulannya

Dalam artikel ini, kami telah meneroka salah satu daripada banyak ciri yang disediakan oleh perpustakaan Thymeleaf.

Kami memaparkan iterasi dalam Thymeleaf dengan menggunakan atribut th: masing-masing , bersama dengan sifatnya yang tidak ada di dalam kotak.

Versi berfungsi dari kod yang ditunjukkan dalam artikel ini terdapat di repositori GitHub kami.