CQ5 中是否有一种标准方法来获取当前页面 url 以便在 JSP 的头部创建自动规范链接?
基本上我们有一个对话框配置框,您可以在其中覆盖规范链接,但默认情况下,如果为空,我想根据当前请求的原始 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 网站上的官方文档中阅读更多信息。
(请注意,外部器是 CQ5.5+)