Nội dung bài viết
1- Thymeleaf là gì?
Thymeleaf là một Java Template Engine hiện đại, hoạt động tại phía máy chủ (server side) cho cả hai môi trường Web và môi trường tiêu chuẩn. Nó có khả năng xử lý HTML, XML, Javascript, CSS thậm chí các văn bản thô (plain text).
A Thymeleaf Template
Bạn đang đọc: Giới thiệu về Thymeleaf
Person List
Person List
Add Person
First Name
Last Name
...
...
Thymeleaf Engine sẽ phân tích Thymeleaf Template, nó sử dụng các dữ liệu Java để thay thế các vị trí được đánh dấu trên Thymeleaf Template để tạo ra một văn bản mới.
2- Các loại Template trong Thymeleaf
Thymeleaf có 6 loại Template, mỗi loại Template cũng được gọi là một chế độ Template (Template Mode).
- HTML
- XML
- TEXT
- JAVASCRIPT
- CSS
- RAW
HTML Template Mode
Chế độ HTML Template cho phép bất kỳ một loại đầu vào HTML nào, bao gồm HTML5, HTML4, XHTML. Khi xử lý các tài liệu này Thymeleaf Engine sẽ không kiểm tra well-formed của tài liệu, đồng thời nó cũng không xác thực (validate) tài liệu này.
Trong chế độ HTML Template, Thymeleaf không tạo ra các thẻ (tag) mới (Ngoại trừ thẻ
Dưới đây là một ví dụ HTML Thymeleaf Template:
Mở HTML Template trực tiếp trên trình duyệt, bạn có thể nhìn thấy giao diện của trang.
first-html-template.html
My First HTML Thymeleaf Template
Hello HTML Thymeleaf Template
XML Template Mode
Chế độ XML Template cho phép đầu vào là XML. Themeleaf Engine sẽ kiểm tra để đảm bảo rằng tài liệu XML này là well-formed (Có định dạng tốt), nghĩa là phải đảm bảo mỗi thẻ mở (open tag) phải có một thẻ đóng (close tag), giá trị của một thuộc tính (attribute) phải được đặt trong dấu nháy đơn (single quotation marks ‘ ‘) hoặc dấu nháy kép (double quotation marks ” “),… nếu vi phạm một ngoại lệ sẽ được ném ra. Chú ý: Themeleaft Engine không xác thực (validate) rằng tài liệu XML này có phù hợp hay không với một DTD hoặc một XML Schema.
XML Template example
TEXT Template Mode
Chế độ TEXT Template sử dụng một cú pháp đặc biệt cho các Template, đầu vào là các tài liệu văn bản thông thường chẳng hạn như Text Email,… Chú ý rằng HTML Template hoặc XML Template cũng có thể được coi là một văn bản thuần thúy, Thymeleaf Engine sẽ không quan tâm tới các thẻ (tag), chúng chỉ được coi là văn bản.
TEXT Template example
Dear [(${customer.name})],
This is the list of our products:
[# th:each="p : ${products}"]
- [(${p.name})]. Price: [(${#numbers.formatdecimal(p.price,1,2)})] EUR/kg
[/]
Thanks,
The Thymeleaf Shop
JAVASCRIPT template Mode
Chế độ Javascript Template cho phép xử lý các tập tin Javascript trong ứng dụng Thymeleaf. Điều này có nghĩa là có thể sử dụng mô hình dữ liệu bên trong các tập tin Javascript giống như cách nó có thể làm trong các tập tin HTML. Tuy nhiên tập tin Javascript chỉ được coi là một văn bản thuần thúy, vì vậy nó sử dụng cú pháp gần giống cú pháp của chế độ TEXT Template.
Xem thêm: Tên miền (Domain) là gì? Hosting là gì?
Ví dụ với tập tin Javascript Template:
Javascript Template example
// Javascript Template:
function showCode() {
var code = /*[[${code}]]*/ '12345';
document.getElementById('code').innerHTML = code;
}
// ==> Output:
function showCode() {
var code = 11223';
document.getElementById('code').innerHTML = code;
}
Ví dụ với Javascript Template nhúng trong HTML:
Javascript Template ( Inline example )
CSS template Mode
Chế độ CSS Template cho phép xử lý các tập tin CSS trong ứng dụng Thymeleaf. Nó sử dụng cú pháp giống với cú pháp của chế độ Javascript Template.
Ví dụ với CSS Template nhúng trong HTML:
Css Template ( Inline example )
RAW Template Mode
Chế độ RAW Template sẽ không xử lý các Template. Nó được sử dụng để trèn các tài nguyên chưa được xử lý (File,URL Response,..) vào Template. Chẳng hạn các tài nguyên bên ngoài, hoặc không được kiểm soát bởi định dạng HTML.
3- Dialect (Phương ngữ)
Thymeleaf là một công cụ cho phép tùy biến, cụ thể nó cho phép bạn định nghĩa cách Template của bạn sẽ được xử lý. Thư viện cốt lõi (core) của Thymeleaf cung cấp một phương ngữ gọi là Standard Dialect (Phương ngữ chuẩn), đủ dùng cho tất cả mọi người.
Spring Framework tạo ra một phương ngữ riêng gọi là SpringStandard Dialect, giống như phương ngữ chuẩn của Thymeleaf, nhưng với các điều chỉnh nhỏ để sử dụng tốt hơn một số tính năng trong Spring Framework, Chẳng hạn: Nó sử dụng ngôn ngữ biểu thức Spring (Spring Expression Language – SpringEL) thay vì sử dụng OGNL. Vì vậy, nếu bạn là người dùng Spring Framework, bạn sẽ không lãng phí thời gian của mình, vì hầu hết mọi thứ bạn học ở đây sẽ được sử dụng trong các ứng dụng Spring của bạn.
SpringStandard Dialect example
Xem thêm: Nhân CPU, luồng CPU là gì? Nên chọn máy tính có bao nhiêu nhân, luồng? – https://swing.com.vn
First Name
Last Name
...
...
Standard Dialect example
First Name
Last Name
...
...
Thymeleaf được tạo ra cho ngôn ngữ Java, và vì vậy bạn có thể sử dụng nó tại mọi nền tảng sử dụng Java chẳng hạn Servlet, Struts, Spring,… Tuy nhiên Spring Framework thực sự đã hỗ trợ rất nhiều vì vậy việc sử dụng Thymeleaf trong Spring trở lên dễ dàng hơn.
Vào tháng 1 năm 2017 tại diễn đàn của Thymeleaf đã diễn ra nhiều cuộc đánh giá về nhu cầu sử dụng Thymeleaf đối với các lập trình viên, và đánh giá Framework nào được sử dụng cùng với Thymeleaf nhiều nhất, và dưới đây là kết quả.
Source: https://swing.com.vn
Category: Wiki