Thymeleaf Introduction

Merhaba arkadaslar, bugün view teknolojilerinden biri olan Thymeleaf’a ufak bir giriş yapmış olacağız.

Thymeleaf

Thymeleaf; xml, html, xhtml dosyalarını işleyebilen server-side taraflı Java template engine’dir. Web ve/veya standalone application’lar için kullanabilirsiniz.

Thymeleaf, Spring ile daha iyi anlaşabiliyor ancak springsiz de kullanılabilir. Ben örneklerimde spring kullanmadan bunu yapacağım. Kullanım syntax’ı gayet anlasılır ve basit. Kolayca çoklu dil desteğine sahip web sayfalarını oluşturabiliyor olacaksınız.

Thymeleaf hakkında daha fazla bilgi ve indirmek için : http://www.thymeleaf.org/

Thymeleaf çalışma mantığını aşağıdaki gibi özetleyelim;

  1. Öncelikle bir Template Resolver oluşturulur. Resolver’da engine yardımıyla işlenecek olan dosyalar/sayfalar belirtilir. Örn; WEB-INF/templates altındaki *.html uzantılı sayfaları ben işleyeceğim diyebilirsiniz.
  2. Herhangi bir sayfaya istek geldiğinde servlet bunu karşılar ve bir Template Engine oluşturulur. Oluşturulan engine’e template  resolver atanır.
  3. Template Resolver ile Template Engine oluşturulduktan sonra engine’e data bind edilir. Her türlü data/veri gönderilebilir. Burada Locale bilgisi de eklenebilir, default olarak request’den Locale bilgisini alabilirsiniz. Kolayca locale bilgisini degistirip diller arasında geçiş yapabilirsiniz. Thymeleaf’ın bunu nasıl yaptıgını ilerde belirtecegim.
  4. View sayfasında ise Thymeleaf tag’leri ile alınan datalar gösterilir.

 

Not : TemplateResolver’ın tekrar tekrar oluşturulmasına gerek yoktur, bir kere oluşturup kullanılması daha hızlı uygulama ve daha az memory anlamına gelir. TemplateEngine’i ise gerektiği yerlerde/lazım oldugunda kullanmalısınız.

View’a gelen dataları ekrana basmak icin thymeleaf’ın etiketlerini kullanacagız. Örnek olarak “author” gibi bir datanın oldugunu varsayalım. View’da kullanabilmek icin;

#{} ile pass edilen datayı elde edebiliyoruz. Thymeleaf’ın yetenekleri bunla sınırlı degil, conditional ifadeler, string isleme, math. islemler, iterate edebilmesi, sayfa include etme, servlet api’isine direk erişim gibi muhteşem ozellikler mevcut. #{} ‘dan farklı olarak Thymeleaf’da 4 tane expression var. Bunlar farklı amaclar için kullanılıyor, sonraki yazılarda bunlara deginecegim.

Giriş yazısını burada bitirelim, esen kalın.

~ A.Akkus

545 Total Views 1 Views Today