Timjanblad
Utvecklare | Daniel Fernandez |
---|---|
Stabil frisättning | 3.1.1 / 6 december 2022
|
Skrivet i | Java |
Operativ system | Cross-plattform |
Standard (er) | XML , XHTML , HTML5 |
Typ | Mallmotor |
Licens | Apache-licens 2.0 |
Hemsida |
Thymeleaf är en Java XML / XHTML / HTML5 mallmotor som kan fungera både i webb ( servlet -baserad) och icke-webbmiljöer. Den är bättre lämpad för att servera XHTML/HTML5 i vyskiktet av MVC -baserade webbapplikationer, men den kan bearbeta vilken XML-fil som helst även i offlinemiljöer. Det ger fullständig Spring Framework- integration.
I webbapplikationer strävar Thymeleaf efter att vara ett komplett substitut för JavaServer Pages (JSP), och implementerar konceptet Natural Templates : mallfiler som kan öppnas direkt i webbläsare och som fortfarande visas korrekt som webbsidor.
Thymeleaf är programvara med öppen källkod , licensierad under Apache License 2.0 .
Funktioner
Från projektets hemsida:
- Java mallmotor för XML , XHTML och HTML5 .
- Fungerar både i webb- och icke-webbmiljöer (offline). Inget hårt beroende av Servlet API.
- Baserat på modulära funktioner som kallas dialekter .
- Dialektfunktioner (t.ex.: utvärdering, iteration, etc.) tillämpas genom att länka dem till mallens taggar och/eller attribut.
- Två dialekter tillgängliga direkt: Standard och SpringStandard (för Spring MVC- appar, samma syntax som Standard).
- Utvecklare kan utöka och skapa anpassade dialekter.
- Flera malllägen:
- Fullständigt (och utbyggbart) internationaliseringsstöd .
- Konfigurerbar, högpresterande tolkad mallcache som reducerar input/output till ett minimum.
- Automatiska DOCTYPE-översättningar – från mall DTD till resultat DTD – för (valfritt) validering av både mall och resultatkod.
- Extremt utbyggbar: kan användas som en mallmotorram om det behövs.
- Komplett dokumentation inklusive flera exempelapplikationer.
Thymeleaf exempel
Följande exempel producerar en HTML5-tabell med rader för varje objekt i en List<Product> -variabel som heter allProducts .
< table > < thead > < tr > < th th:text = "#{msgs.headers.name}" > Namn </ th > < th th:text = "#{msgs.headers.price}" > Pris < / th > </ tr > </ thead > < tbody > < tr th:each = "prod : ${allProducts}" > < td th:text = "${prod.name}" > Apelsiner </ td > < td th:text = "${#numbers.formatDecimal(prod.price,1,2)}" > 0,99 </ td > </ tr > </ tbody > </ table >
Denna kodbit innehåller:
- Internationaliseringsuttryck: #{ ... } rh
- Variabel/modellattribututvärderingsuttryck: ${ ... }
- Verktygsfunktioner: #numbers.formatDecimal( ... )
Dessutom kan detta fragment av (X)HTML-kod visas perfekt av en webbläsare som en prototyp, utan att bearbetas alls: det är en naturlig mall .