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

时间:2018-01-24 23:20:12

标签: java aem cq5

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

到目前为止我尝试过的,

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

有人可以帮我解决一下我是如何让它以这种格式取而代之的,即获得[hostname]:[port]吗?

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

1 个答案:

答案 0 :(得分:1)

这可以使用外部化程序 OSGi Serive

来完成

在外部化程序服务配置中添加映​​射

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

获取网址

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

这将创建网址

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

请参阅documentation