gpt4 book ai didi

java - 在 Java 中为 Adob​​e CQ 查找资源设计和资源页面

转载 作者:行者123 更新时间:2023-12-01 22:50:23 27 4
gpt4 key购买 nike

我正在执行一项任务,涉及创建一个 servlet 以在 Adobe CQ 5.5 中接收 html 请求。它需要拉取 cq:defineObjects 定义的一些对象标签。其中两个对象是resourceDesignresourcePage

我相信我可以使用以下代码从resourcePage检索resourceDesign:

import org.apache.sling.api.servlets.SlingAllMethodsServlet;
...
@Override
protected void doGet(SlingHttpServletRequest slingRequest, SlingHttpServletResponse slingResponse) throws ServletException, IOException {
ResourceResolver resourceResolver = slingRequest.getResourceResolver();
...
Designer designer = resourceResolver.adaptTo(Designer.class);
Page resourcePage = ...
Design resourceDesign = designer.getDesign(resourcePage);
}

但是我不太明白如何检索resourcePage,并且文档没有非常清楚地说明它是什么或如何获取其值。

任何见解将不胜感激。

谢谢,托马斯

最佳答案

resourcePage 指包含您的资源的页面,是 com.day.cq.wcm.api.PageresourceDesign 的实例> 是资源页面的设计对象。

可以使用 PageManager 的 #getContainingPage() 获取资源页面,如下所示。

import org.apache.sling.api.servlets.SlingAllMethodsServlet;
...
@Override
protected void doGet(SlingHttpServletRequest slingRequest,
SlingHttpServletResponse slingResponse) throws ServletException, IOException {

ResourceResolver resourceResolver = slingRequest.getResourceResolver();
PageManager pageManager = resourceResolver.adaptTo(PageManager.class);

Page resourcePage = pageManager.getContainingPage(slingRequest.getResource());

Designer designer = resourceResolver.adaptTo(Designer.class);
Design resourceDesign = designer.getDesign(resourcePage);
}

有关更多信息,请参阅this doc .

关于java - 在 Java 中为 Adob​​e CQ 查找资源设计和资源页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24814177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com