Iteracija u majčinoj dušici

1. Pregled

Majčina dušica je svestrani Java predložak za obradu XML, XHTML i HTML5 dokumenata.

U ovom brzom uputstvu pogledat ćemo kako možemo izvršiti iteraciju s Thymeleafom, zajedno s nekim drugim značajkama koje pruža knjižnica.

Za više informacija o majčinoj dušici, pogledajte naš uvodni članak ovdje.

2. Ovisnosti Mavena

Da bismo stvorili ovaj primjer, koristit ćemo knjižnice Spring Framework zajedno s knjižnicama Thymeleaf.

Ovdje možemo vidjeti naše ovisnosti (majčina dušica i timijanov list-proljeće):

 timijanov list orgy 3.0.11.OSLOBODITI timijanov list-proljeće5 3.0.11. 

3. Primjer postavljanja

Prije nego što uskočimo u sloj pogleda, kreirajmo strukturu MVC za naš primjer.

Počevši od isječka koda sloja modela:

student javne klase implementira Serializable {private Integer id; privatni naziv niza; // standardni izvođači, geteri i postavljači}

Osigurajmo i metodu kontrolera odgovornu za učitavanje modela i vraćanje u sloj pogleda:

@GetMapping ("/ listStudents") javni niz stringStudent (model modela) {model.addAttribute ("students", StudentUtils.buildStudents ()); vrati "listStudents.html"; }

U našem uzorku iznad buildStudents () metoda jednostavno vraća popis Student objekte koje zatim dodajemo u model.

4. The th: svaki Atribut

U Thymeleaf-u se ponavljanje postiže korištenjem th: svaki atribut.

Jedna od zanimljivosti ovog atributa je ta prihvatit će i ponoviti neke različite vrste podataka, kao što su:

  • objekti koji provode java.util.Iterable
  • objekti koji provode java.util.Map
  • nizovi
  • bilo koji drugi objekt tretira se kao da je jednoznačni popis koji sadrži jedan element

Sada ćemo se pozvati na th: svaki atribut s podacima koje smo postavili u našem gornjem primjeru:

Isječak koda prikazuje th: svaki ponavljajući naš popis Studenti. Atributu modela pristupa se pomoću ${} notacija, a svaki element popisa prenosi se u tijelo petlje putem student varijabilna.

5. Varijabla statusa

Majčina dušica također omogućuje koristan mehanizam za praćenje postupka ponavljanja putem varijable statusa.

Varijabla statusa pruža sljedeća svojstva:

  • indeks: trenutni indeks iteracija, počevši od 0 (nula)
  • računati: broj do sada obrađenih elemenata
  • veličina: ukupan broj elemenata na popisu
  • paran / neparan: provjerava je li trenutni indeks ponavljanja paran ili neparan
  • prvi: provjerava je li trenutna iteracija prva
  • posljednji: provjerava je li trenutna iteracija zadnja

Pogledajmo kako varijabla statusa funkcionira u našem primjeru:

Ovdje smo uključili iStat.odd svojstvo za procjenu stanja i postavljanje podebljanog stila za trenutni redak. Isto se radi na sljedećem ocjenjivanju, ali ovaj put koristimo iStat.čak za ispis vrijednosti putem alt / title HTML atributa.

U slučaju da izostavimo eksplicitno stvaranje varijable statusa (predstavljeno kao iStat u našem primjeru), mogli bismo pozvati svoju statusnu varijablu jednostavnim korištenjem studentStat, što je agregacija varijable student s nastavkom Stat.

6. Zaključak

U ovom smo članku istražili jednu od mnogih značajki koje nudi knjižnica Thymeleaf.

Iteraciju smo predstavili u Thymeleaf koristeći atribut th: svaki, zajedno sa svojim izvanrednim svojstvima.

Radna verzija koda prikazana u ovom članku dostupna je u našem GitHub spremištu.