gpt4 book ai didi

aem - 从 CQ5 中的 jcr 节点获取 html 输出

转载 作者:行者123 更新时间:2023-12-04 07:52:15 25 4
gpt4 key购买 nike

我想知道是否有办法在不点击实际 url 的情况下获取 CQ5 中页面节点的渲染 HTML 输出。我有 Page 节点,我想在 java 中以编程方式获取该 Page 节点的渲染 HTML 输出,并将其存储在一个字符串中,而无需点击页面 URL。

任何帮助表示赞赏,提前致谢!

最佳答案

节点本身只是一个数据。负责渲染这些数据的 Sling 框架。它使用一系列规则来确定应如何呈现这些数据。 Sling Script Resolution Cheet Sheet由于 Sling 是 Web 框架,它通过 http 请求呈现数据。

要在 CQ/AEM 中模拟此请求,我建议使用 com.day.cq.contentsync.handler.util.RequestResponseFactory服务

import org.apache.sling.engine.SlingRequestProcessor;
import com.day.cq.contentsync.handler.util.RequestResponseFactory;

@Reference
private RequestResponseFactory requestResponseFactory;

@Reference
private SlingRequestProcessor requestProcessor;

public String doStuff(){
HttpServletRequest request = requestResponseFactory.createRequest("GET", "/path/to/your/node.html");
request.setAttribute(WCMMode.REQUEST_ATTRIBUTE_NAME, WCMMode.DISABLED);

ByteArrayOutputStream out = new ByteArrayOutputStream();
HttpServletResponse response = requestResponseFactory.createResponse(out);

requestProcessor.processRequest(request, response, resourceResolver);
return out.toString(response.getCharacterEncoding());
}

希望能帮助到你。

关于aem - 从 CQ5 中的 jcr 节点获取 html 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32690415/

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