AEM ServerSide JavaScript 主机

AEM ServerSide JavaScript host

我试图找到我的应用程序的当前主机以便进行一些实现,我经历了不同的 Java 后端对象(资源、请求、resourcePage..)但是我拥有的所有属性发现给我相对路径。获取发起呼叫的主机的最佳方法是什么?

这是我一直在查看的全局对象列表: http://docs.adobe.com/docs/en/aem/6-0/develop/sightly/global-objects.html

如果您尝试通过 java 或 java 脚本解析主机,我会感到有点困惑,这就是为什么我将 post 这两种解决方案。如果您的意思不是别的,请扩展您的问题或创建新问题。

Java脚本:

window.location.hostname

Java:

org.apache.sling.api.SlingHttpServletRequest request = ...; // you have instance of the request if you are in a context of a servlet
String domain = request.getRemoteHost() // e.g. whosebug.com

或者如果您尝试解析 Java 中的某些资源 url,您可以使用 com.day.cq.commons.Externalizer,它可以从 org.apache.sling.api.resource.ResourceResolver 中改编并使用中的设置你的地图文件 /etc/map

Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
externalizer.externalLink(resourceResolver, Externalizer.PUBLISH, getRequest().getScheme(), "/");