Spring and Thymeleaf 3: Expressions

1. Introduksjon

Thymeleaf er en Java-malmotor for behandling og oppretting av HTML, XML, JavaScript, CSS og ren tekst. For en introduksjon til Thymeleaf og Spring, ta en titt på denne oppskriften.

I tillegg til disse grunnleggende funksjonene, tilbyr Thymeleaf oss et sett med verktøyobjekter som vil hjelpe oss med å utføre vanlige oppgaver i applikasjonen vår.

I denne artikkelen vil vi diskutere en kjernefunksjon i Thymeleaf 3.0 - Expression Utility Objects i MVC-applikasjoner om våren. Mer spesifikt vil vi dekke temaet behandlingsdatoer, kalendere, strenger, objekter og mye mer.

2. Maven-avhengigheter

La oss først se den nødvendige konfigurasjonen som trengs for å integrere Thymeleaf med Spring. De thymeleaf-våren bibliotek kreves i våre avhengigheter:

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

Merk at, for et Spring 4-prosjekt, thymeleaf-spring4 biblioteket må brukes i stedet for thymeleaf-spring5. Den siste versjonen av avhengighetene finner du her.

3. Expression Utility Objects

Før du ser på kjernefokuset for denne oppskriften, kan du ta en titt på denne veiledningen hvis du vil ta et skritt tilbake og se hvordan du konfigurerer Thymeleaf 3.0 i webapprosjektet ditt.

I den aktuelle artikkelen opprettet vi en vårkontroller og HTML-fil - for å teste ut alle funksjonene vi skal diskutere. Nedenfor er den komplette listen over tilgjengelige hjelperobjekter og deres funksjoner:

  • #dates: verktøymetoder for java.util.Date gjenstander
  • #kalendere: lik #dates, brukt til java.util.Kalender gjenstander
  • #numbers: verktøymetoder for formatering av numeriske objekter
  • #strenger: verktøymetoder for String gjenstander
  • #objekter: verktøymetoder for Java Gjenstand klasse generelt
  • #bools: verktøymetoder for boolsk evaluering
  • #arrays: verktøymetoder for matriser
  • #lister: verktøymetoder for lister
  • #settene: verktøymetoder for sett
  • #mapper: verktøymetoder for kart
  • #aggregates: verktøymetoder for å lage aggregater på matriser eller samlinger
  • #meldinger: verktøymetoder for å skaffe eksternaliserte meldinger i variabeluttrykk

3.1. Datoer Objekter

Den første funksjonen vi ønsker å diskutere er behandling av java.util.Date gjenstander. Uttrykket verktøyobjekter ansvarlig for Dato behandlingen starter med # dates.functionName (). Den første funksjonen vi ønsker å dekke er formatering av a Dato objekt (som legges til vårmodellparametrene).

La oss si at vi vil bruke ISO8601 format:

Uansett hvordan vår Dato ble satt på baksiden, må den vises i samsvar med denne standarden. Hva mer, hvis vi vil være spesifikke med formatet, kan vi spesifisere det manuelt:

Funksjonen tar to variabler som parametere: Dato og dens format.

Til slutt, her er noen like nyttige funksjoner vi kan bruke:

I den første vil vi motta navnet på ukedagen, i det andre vil vi lage en ny Dato objekt, og til slutt vil vi lage et nytt Dato med tiden satt til 00:00.

3.2. Kalenderobjekter

Kalenderverktøy er veldig lik databehandling, bortsett fra at vi bruker en forekomst av java.util.Kalender gjenstand:

Den eneste forskjellen er når vi vil skape nye Kalender forekomst:

Vær oppmerksom på at vi kan bruke hvilken som helst Kalender klassemetode for å få forespurte data.

3.3. Tallbehandling

En annen veldig håndfull funksjon er nummerbehandling. La oss fokusere på en num variabel, tilfeldig opprettet med en dobbelt type:

På den første linjen formaterer vi desimaltall ved å angi minimum heltall og eksakte desimaltall. I den andre, i tillegg til heltall og desimaltegn, spesifiserte vi desimalseparatoren. Alternativene er PUNKT, KOMMA, WHITESPACE, INGEN eller MISLIGHOLDE (etter sted)

Det er en funksjon til som vi vil presentere i dette avsnittet. Det er oppretting av en sekvens av heltall:

I det første eksemplet hadde vi Thymeleaf generere en sekvens fra 0-2, mens i det andre i tillegg til minimums- og maksimumsverdien, ga vi en definisjon av trinn (i dette eksemplet endres verdiene med to).

Vær oppmerksom på at intervallet er stengt på begge sider.

3.4. Strenger Operations

Det er den mest omfattende funksjonen i objekter for uttrykksverktøy.

Vi kan starte beskrivelsen med bruken av å sjekke tom eller nullString gjenstander. Ofte brukte utviklere Java-metoder i Thymeleaf-koder for å gjøre det, noe som kanskje ikke er trygt for null gjenstander.

I stedet kan vi gjøre dette:

Den første String er ikke tom, så metoden vil komme tilbake falsk. Den andre String er null, så vi får ekte. Endelig kan vi bruke # strings.defaultString (…) metode for å spesifisere en standardverdi, hvis String vil være tom.

Det er mange flere metoder. Alle fungerer ikke bare med strenger, men også med Java.Collections. For eksempel å bruke substring-relaterte operasjoner:

eller å bruke null-sikker sammenligning og sammenkobling:

Til slutt er det tekstrelaterte funksjoner som vil bevare at syntaksen alltid er den samme:

I den første metoden vil forkortet tekst få den til å ha en maksimal størrelse på n. Hvis en tekst er større, blir den klippet og avsluttet med “…”.

I den andre metoden vil vi kapitalisere ord.

3.5. Aggregater

Den siste men ikke minst funksjonen vi ønsker å diskutere her er aggregater. De er null trygt, og tilby verktøy for å beregne gjennomsnitt eller sum fra matrise eller annen samling:

4. Konklusjon

I denne artikkelen diskuterte vi funksjoner for Expression Utility Objects implementert i Thymeleaf framework, versjon 3.0.

Den fulle implementeringen av denne veiledningen finner du i GitHub-prosjektet.

Hvordan teste? Vårt forslag er å spille med en nettleser først, og deretter sjekke de eksisterende JUnit-testene også.

Vær oppmerksom på at eksemplene ikke dekker alle tilgjengelige verktøyuttrykk. Hvis du vil lære om alle typer verktøy, kan du ta en titt her.


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