java - 如何在AEM中获取页面的完整路径?

标签 java aem

我正在尝试获取页面的完整路径,以便将其转换为网址。

到目前为止我已经尝试过,

private static String PAGE = "/content/geometrixx/en/toolbar";
private static String URL_TO_OPEN;

public static String getUrl(Set<String> pages, ResourceResolver resolver){

  Resource htmlPage = resolver.getResource(PAGE);

  if(htmlPage != null){

  URL_TO_OPEN = htmlPage.getPath().concat(StringConstraints.DOT).concat(StringConstraints.HTML);
  return URL_TO_OPEN;
  }
}

在这种情况下, URL_TO_OPEN = "/content/geometrixx/en/toolbar.html"

但我需要的是,例如“http://localhost:4502/content/geometrixx/en/toolbar.html

有人可以帮我解决如何将其改为这种格式吗,即同时获取[主机名]:[端口]?

http://[hostname]:[port]/content/geometrixx/en/toolbar.html

最佳答案

这可以使用Externalizer OSGi Serive 来完成

在 externalizer 服务配置中添加映​​射

local http://localhost:4502
author http://localhost:4502
publish http://localhost:4503

获取 URL

String myURL = externalizer.externalLink(resolver, Externalizer.LOCAL, PAGE) + ".html";

这将创建 URL

http://localhost:4502/content/geometrixx/en/toolbar.html

请引用documentation

关于java - 如何在AEM中获取页面的完整路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48433291/

相关文章:

java - AEM 6.3 使用 OSGi R6 注释和 Sling 模型

java - Hibernate 中的 SSL 代码

c# - 如何防止类 'a' 被另一个类继承?

JAVA - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 0

java - 通过 Excel 打开时更改 csv 文件中超链接的显示名称

java - AEM 6.5 PKIX 路径构建失败 : sun. security.provider.certpath.SunCertPathBuilderException

java - do-while 循环的困惑

osgi - 在 Adob​​e CQ5 中设置属性

configuration - 为 CQ 存储特定于环境的 OSGI 配置

aem - CQ API 中是否有任何内容允许您从 cq :component? 创建节点