JSPのヘッドに自動正規リンクを作成するために、Adobe CQ5で現在のページURLを取得する標準的な方法はありますか?
基本的に、正規リンクをオーバーライドできるダイアログ構成ボックスがありますが、デフォルトでこれが空の場合、現在のリクエストの未加工の URL パスに基づいてリンクを作成したいと考えています。
ヘッドの JSP はすべてのリクエストで共有されます。
どうもありがとう
JSPのヘッドに自動正規リンクを作成するために、Adobe CQ5で現在のページURLを取得する標準的な方法はありますか?
基本的に、正規リンクをオーバーライドできるダイアログ構成ボックスがありますが、デフォルトでこれが空の場合、現在のリクエストの未加工の URL パスに基づいてリンクを作成したいと考えています。
ヘッドの JSP はすべてのリクエストで共有されます。
どうもありがとう
この${currentPage.path}
変数は、現在のリソースへの親ページのパスを提供しますが、Externalizer を使用して、これを適切なユーザー向け URL にする必要があります (つまり、適切なマッピング ルールを適用し、正しいドメイン名を使用します)。 、サーバー名ではなく、例prod-server-123
)
すなわち
ResourceResolver resourceResolver = request.getResourceResolver();
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
String canonicalUrl = externalizer.publishLink(resourceResolver, "http", currentPage.getPath());
Felixを介して、またはosgi:Config
リポジトリ内のノードを介して、エクスターナライザーがベース URL として扱うものをカスタマイズできます。詳細については、Adobe サイトの公式ドキュメントを参照してください。
(Externalizer は CQ5.5+ であることに注意してください)