Iterasjon i Thymeleaf

1. Oversikt

Thymeleaf er en allsidig Java-malmotor for behandling av XML-, XHTML- og HTML5-dokumenter.

I denne raske opplæringen vil vi se på hvordan vi kan utføre iterasjon med Thymeleaf, sammen med noen andre funksjoner som tilbys av biblioteket.

For mer informasjon om Thymeleaf, ta en titt på vår innledende artikkel her.

2. Maven-avhengigheter

For å lage dette eksemplet bruker vi Spring Framework-biblioteker sammen med Thymeleaf-biblioteker.

Her kan vi se våre avhengigheter (thymeleaf og thymeleaf-spring):

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

3. Eksempel på oppsett

Før vi hopper inn i visningslaget, la oss lage MVC-strukturen for vårt eksempel.

Starter med kodebiten til modellaget:

offentlig klasse Studentredskaper Serialiserbar {privat heltal id; privat strengnavn; // standardkonstruktører, getters og setters}

La oss også gi kontrollermetoden som er ansvarlig for å laste modellen og returnere den til visningslaget:

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

I vårt utvalg over buildStudents () metoden returnerer ganske enkelt en liste over Student objekter som vi deretter legger til modell.

4. De th: hver Egenskap

I Thymeleaf oppnås iterasjon ved å bruke th: hver Egenskap.

Noe av det interessante med denne egenskapen er at den vil akseptere og itere over noen forskjellige datatyper, som for eksempel:

  • gjenstander som implementeres java.util.Iterable
  • gjenstander som implementeres java.util.Kart
  • arrays
  • ethvert annet objekt blir behandlet som om det var en enkeltverdig liste som inneholder ett element

La oss påkalle th: hvert attributt med dataene vi satte opp i eksemplet vårt ovenfor:

Kodebiten viser th: hver gjentar over vår liste over Studenter. Du får tilgang til modellattributtet ved hjelp av ${} notasjon, og hvert element i listen overføres til kroppen av sløyfen via student variabel.

5. Statusvariabel

Thymeleaf også muliggjør en nyttig mekanisme for å holde oversikt over iterasjonsprosessen via statusvariabelen.

Statusvariabelen gir følgende egenskaper:

  • indeks: gjeldende iterasjonsindeks, startende med 0 (null)
  • telle: antall elementer som er behandlet så langt
  • størrelse: det totale antallet elementer i listen
  • jevn / merkelig: sjekker om gjeldende iterasjonsindeks er jevn eller merkelig
  • først: sjekker om gjeldende iterasjon er den første
  • siste: sjekker om gjeldende iterasjon er den siste

La oss se hvordan statusvariabelen fungerer i vårt eksempel:

Her inkluderte vi iStat.odd egenskap for å evaluere tilstanden og angi en fet stil for gjeldende rad. Det samme gjøres ved neste evaluering, men denne gangen bruker vi iStat. selv for å skrive ut en verdi via alt / title HTML-attributt.

I tilfelle vi utelater den eksplisitte opprettelsen av statusvariabelen (presentert som iStat i vårt eksempel), vi kunne påberope oss statusvariabelen ved å bare bruke studentStat, som er aggregasjonen av variabelen student med suffikset Stat.

6. Konklusjon

I denne artikkelen har vi utforsket en av de mange funksjonene som tilbys av Thymeleaf-biblioteket.

Vi presenterte iterasjon i Thymeleaf ved å bruke attributtet th: hver, sammen med dets out-of-the-box egenskaper.

En fungerende versjon av koden vist i denne artikkelen er tilgjengelig i GitHub-arkivet.


$config[zx-auto] not found$config[zx-overlay] not found