【发布时间】:2015-01-13 06:32:33
【问题描述】:
我的要求是在 JCR 中迭代超过 8000 个节点,并使用 PageManager API 在 Java 中为每个节点创建一个 Page 对象。
首先,我使用 PageManager 来获取页面的标题,如下所示。
public String currentPageTitle(String pagePath) {
Page page=null;
ResourceResolver resourceResolver=null;
PageManager pageManager=null;
try {
if (pagePath != null) {
resourceResolver = resourceResolverFactory.getAdministrativeResourceResolver(null);
pageManager = resourceResolver.adaptTo(PageManager.class);
**page = pageManager.getContainingPage(resourceResolver.getResource(pagePath));**
LOGGER.error("Page $$$$"+page);
if (page == null) {
throw new IllegalArgumentException("Page does not exist: " + pagePath);
}
}
} catch (LoginException e) {
LOGGER.error("Login Exception");
e.printStackTrace();
}
return page.getTitle();
}
在这里,我将页面对象设为 null,当我尝试传递 Geometrixx 页面 URL 以获取其标题时,它会抛出“页面不存在:/content/geometrixx/fr.html”。
【问题讨论】:
-
你传递的路径是
/content/geometrixx/fr.html还是/content/geometrixx/fr? -
1.正如 rakhi 提到的资源解析,不提供扩展名,只提供路径。 2、getContainingPage方法中的路径可以直接使用,有一个版本是String作为参数的。
-
感谢 rakhi4110 和 Thomas ...根据您的建议,它确实有效。
标签: aem osgi-bundle sling