對於 AEM 的長期使用者,本文件說明 HTL 的背景、它如何取代 JSP 以及將名稱更改為 Sightly。
HTML 範本語言 (HTL) 是 Adobe Experience Manager 中首選且推薦使用的 HTML 伺服器端範本系統。 它取代了舊版 AEM 中所使用的 JSP (JavaServer Pages)。
建議新 AEM 專案最好使用 HTML 範本語言,因為相較於 JSP,HTL 提供了多項優點。 但如果是現有專案,只有在預估遷移比未來幾年維護現有 JSP 的工作量少時,遷移才有意義。
不過,移至 HTL 不見得是全有或全無的選擇,因為使用 HTL 撰寫的元件與使用 JSP 或 ESP 撰寫的元件相容。 這表示現有專案可以毫無問題地將 HTL 用於新元件,同時繼續將 JSP 用於現有元件。
即便是在相同元件中,HTL 檔案也可以與 JSP 和 ESP 一起使用。 以下範例在第 1 行顯示如何加入 JSP 檔案中的 HTL 檔案,並在第 2 行顯示如何加入 HTL 檔案中的 JSP 檔案:
<cq:include script="template.html"/>
<sly data-sly-include="template.jsp"/>
這些是經驗豐富的 AEM 開發人員首次接觸 HTL 時最常提出的問題。
相較於 JSP,HTL 並沒有真正的限制,因為可以使用 JSP 完成的事情應該也可以使用 HTL 達成。 不過,從若干方面而言,HTL 的設計比 JSP 更加嚴格。只使用單一 JSP 檔案便可以完成的事情,可能需要分散到 Java 類別或 JavaScript 檔案中,才能在 HTL 中達成。 但這通常需要確保邏輯與標記之間有良好的關注點分離。
否,但如同「快速入門」文件的「載入用戶端資料庫」一節所述,範本和呼叫陳述式可提供類似的模式。
不行。HTL 具有可重複使用邏輯的強大擴充機制,利用這些邏輯 (Use-API 和標記 (範本和呼叫陳述式)) 可將專案的程式碼模組化。
安全性和專案效率是主要優點,在總覽中均有詳細說明。
目前沒有這方面的計劃。
先前在 AEM 6.0 和 6.1 中,HTL 稱為 Sightly。 Adobe 將其重新命名為「HTML 範本語言」,或 HTL,以釐清此規格的用途,而且大體上符合 Adobe 的命名準則。此命名變更自 2016 年 8 月起生效,適用於 AEM 6.0 和更高版本。
此命名變更不會影響程式碼或 API,所以相容性不受影響。 如需詳細資訊,請參考這段公告影片。
若要進一步了解 HTL,我們官方的「HTML 範本語言 (HTL) 快速入門手冊」是很好的起點。