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.