java - CQ5 - 模型类中的 Sling currentPage

标签 java aem sling

在 CQ jsp 中,只需调用 currentPage.getPath() 即可轻松访问 currentPage 对象。但我正在尝试删除任何 scrip lets 并将它们分离到模型类中,但无法弄清楚如何访问 currentPage 对象。我以为我可以做类似的事情:

public void setResource(Resource resource){
    resource.getPath()
}  

但这会返回类似的东西:

/content/home/subPage/jcr:content/banner

我只是想返回 /content/home/subPage/。我正在尝试使用资源来获取路径,但找不到任何方法来执行此操作。我知道这一定是我忽略的小东西。感谢您的帮助!

最佳答案

您获得 jcr:content/banner 是因为您调用的是页面内组件的资源,而不是页面本身。

要从组件中获取当前页面,您可以使用 PageManager:

PageManager pageManager= resource.getResourceResolver().adaptTo(PageManager.class);

Page currentPage = pageManager.getContainingPage(resource);

关于java - CQ5 - 模型类中的 Sling currentPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415951/

相关文章:

java - 有没有一种方法可以将数据从一个 servlet 传递到另一个 servlet,同时也将相同的数据传递到 jsp?

java - 包含 Set 的 @ManyToMany Map 的 JPA2 持久性

aem - 通过 sling 重命名用户

aem - AEM中的触摸UI与经典UI

java - 将 xml 文件上传到 AEM DAM

java - Apache Sling 停止响应请求

Java反编译->重新编译的过程,安全吗?

java - 使用 Java 在文本文件中查找元音最连续的单词

java - OSGi bundle - 获取 DataSourcePool 以在 Adob​​e CQ5 中的 servlet 中使用

aem - Adobe CQ5发布环境中如何区分页面是第一次发布还是多次发布