Show Menu
主題×

綜覽

Adobe Experience Manager (AEM) 支援的 HTML 範本語言 (HTL) 旨在提供高生產力的企業級網頁架構,除了提升安全性,也讓不具 Java 知識的 HTML 開發人員更能參與 AEM 專案。
HTML範本語言已隨AEM 6.0推出,取代JSP(JavaServer Pages),成為HTML的偏好和建議的伺服器端範本系統。 對需要建立強大企業網站的網頁開發人員而言,HTML 範本語言有助於提升安全性和開發效率。

提升安全性

HTML 範本語言與 JSP 和大部分其他範本系統相比,可提升在實作中使用 HTL 的網站安全性,因為 HTL 可自動將適當的內容感知逸出,套用到輸出至展示層的所有變數。HTL 之所以能做到這點,是因為其了解 HTML 語法,並運用相關知識,根據運算式在標記中的位置調整其必要逸出。例如,這會導致
href
src
屬性中的運算式,與其他屬性或其他位置的運算式產生不同逸出。
雖然使用 JSP 等範本語言可以達到相同結果,但開發人員必須手動操作,才能確保適當的逸出套用至每個變數。由於套用的逸出只要一有遺漏或錯誤,就可能足以造成跨網站指令碼 (XSS) 出現弱點,因此我們決定使用 HTL 將此工作自動化。如有必要,開發人員仍可在運算式上指定其他逸出,但使用 HTL 的話,預設行為更可能對應到希望的行為,減少發生錯誤的機率。

簡化開發工作

HTML 範本語言簡單易學,其功能刻意有所限制,以確保其簡單明瞭。此外,這種範本語言也有強大機制足以建立標記架構及叫用邏輯,同時一律強制分割標記和邏輯面向。HTL 本身屬於標準 HTML5,因其使用運算式和資料屬性,以符合需求的動態行為標註標記,也就是說,這不會破壞標記的有效性,並使標記持續可供讀取。請注意,評估運算式和資料屬性的工作完全在伺服器端進行,用戶端看不見,因此用戶端可以不受干擾地使用想要的 JavaScript 框架。
在這些功能的輔助下,HTML 開發人員可在不具 Java 知識,且幾乎不懂產品專門知識的情況下編輯 HTL 範本,進而協助他們加入開發團隊,並簡化與全端 Java 開發人員的協同合作。換個角度來說,這能讓 Java 開發人員專注於後端程式碼,不必擔心 HTML。

降低成本

提升安全性、簡化開發工作並改善團隊的協同合作成效,都能使執行 AEM 專案更加輕鬆、縮短上市時間 (TTM),並且減少總持有成本 (TCO)。
具體而言,使用 HTML 範本語言重新實作 Adobe.com 網站,可發現成本和專案所需時間減少約 25%。
上圖說明 HTL 提升效率的下列成效:
  • HTML/CSS/JS:
    由於 HTML 開發人員能直接編輯 HTL 範本,前端設計不必再從 AEM 專案分別實作,而是能在實際 AEM 元件上直接實作。這能減少痛苦的迭代作業,裨益全端 Java 開發人員。
  • JSP/HTL:
    HTL 本身不需搭配任何 Java 知識,且容易撰寫,因此所有具備 HTML 專業的開發人員都能編輯這類範本。
  • Java:
    HTL 提供清楚且易於使用的 Use-API,讓具商業邏輯的介面更清晰明瞭,同時有助於整體 Java 開發。
閱讀下一節內容: