概要 overview

Adobe Experience Manager(AEM)でサポートされる HTML テンプレート言語(HTL)は、セキュリティを強化する生産性の高いエンタープライズレベルの web フレームワークを提供することを目的としています。また、Java の知識を持たない HTML 開発者が AEM プロジェクトに参加しやすくなります。

AEM 6.0 で導入された HTML テンプレート言語は、AEM での HTML 用にサーバーサイドで優先かつ推奨されるテンプレートシステムです。堅牢なエンタープライズ Web サイトを構築しなければならない Web 開発者にとって、HTL は安全性と開発効率の向上に役立ちます。

セキュリティの向上 increased-security

HTML テンプレート言語(HTL)は、すべての出力変数にコンテキスト対応のエスケープを自動的に適用することで、サイトのセキュリティを強化し、他のほとんどのテンプレートシステムよりも安全になります。HTL が HTML 構文を理解し、その知識を使用してマークアップ内の位置に基づいて式に対して必要なエスケープを調整するので、このアプローチが可能になります。この方法により、href 属性または src 属性に配置された式が、その他の属性またはその他の場所に配置された式とは別にエスケープされる可能性があります。

JSP のようなテンプレート言語でもこれと同じ結果が得られますが、開発者は各変数に対してエスケープが適切に適用されたかどうかを手動で確認する必要があります。エスケープが 1 つ省略または間違って適用されるだけでクロスサイトスクリプティング(XSS)の脆弱性を引き起こす危険性があるので、アドビではこのタスクを HTL で自動化することにしました。開発者は必要に応じて表現に対して別のエスケープを指定することもできますが、HTL のデフォルトの動作のほうが目的の動作に対応する可能性が高く、エラーの発生確率を減らすことができます。

開発の簡略化 simplified-development

HTML テンプレート言語は学習が容易であり、機能が意図的に制限されているため、複雑さがなく常にシンプルです。また、マークアップを構成してロジックを呼び出すための強力なメカニズムが用意されている一方で、マークアップとロジックの間で常に関心事の分離が厳密に行われています。HTL は標準の HTML5 であり、式とデータ属性を使用して動的な動作でマークアップに注釈を付けます。このアプローチにより、マークアップの有効性と読みやすさが維持されます。式やデータ属性の評価はすべてサーバーサイドで実行され、クライアントサイドには表示されないため、目的の JavaScript フレームワークを干渉なしに使用できます。

これらの機能により、Java の知識がない HTML 開発者でも HTL テンプレートを編集し、開発チームに統合し、Java のフルスタック開発者とのコラボレーションを効率化できます。その逆に、これにより Java 開発者は HTML について心配することなく、バックエンドのコードに集中できます。

コストの削減 reduced-costs

セキュリティの向上、開発の簡略化、チームの共同作業を促進させ、AEM プロジェクトの負荷軽減、市場投入までの時間(TTM)短縮、総所有コスト(TCO)の削減を実現します。

HTML テンプレート言語を使用して Adobe.com サイトを再実装すると、プロジェクトのコストと期間が最大約 25%削減されることがわかりました。

効率的な増加とコスト削減

上の図は、次の言語が HTL で効率を改善できる可能性があることを示します。

  • HTML/CSS/JS: HTML 開発者は HTL テンプレートを直接編集できるので、フロントエンドデザインを AEM コンポーネントに直接実装でき、個別に実装する必要がなくなります。このアプローチにより、Java のフルスタック開発者による反復作業の苦痛が軽減されます。
  • JSP/HTL: HTL 自体は Java の知識を必要とせず、記述も簡単であるので、開発者に HTML の専門知識があればテンプレートを編集できます。
  • Java: HTL が提供するシンプルな Use-API のおかげで、ビジネスロジックが実装されたインターフェイスが明確になり、Java 開発全体としてもメリットがあります。

ビデオの紹介 video

AEM Gems セッションの次のビデオでは、HTL の目的の概要と実装例を紹介します。

このビデオでは、HTL を旧名称の Sightly と呼んでいます。

次の手順 next-steps

HTL の目的と利点を理解できたので、HTL 言語の使用を開始できます。詳しくは、HTML テンプレート言語使用の手引きを参照してください。

recommendation-more-help
86859df1-0285-4512-b293-0ef9cbea5ee8