gpt4 book ai didi

java - 如何从内容页面检索第一个 PAR 节点

转载 作者:搜寻专家 更新时间:2023-11-01 01:13:28 25 4
gpt4 key购买 nike

我正在遍历所有子页面以显示它们的标题和链接。但我还需要显示第一段节点(如果存在)。

例如,我会从以下内容页面中检索第一个 PAR 节点吗?

/content
/foo
/jcr:content
/title
/par <- need this one
/par
/image

我以为Page class getProperties().get() 方法可以工作,但我只看到示例返回 jcr:content 中的属性,而不是它下面的任何子节点。

    ArrayList aChildren = new ArrayList();
String listroot = properties.get("listRoot", currentPage.getPath());

Page rootPage = pageManager.getPage(listroot);
if (rootPage != null) {
Iterator<Page> children = rootPage.listChildren(new PageFilter(request));

while (children.hasNext()) {
Page child = children.next();

out.println( child.getTitle() + "<br>" );
//Output first PAR tag of this page here
}

}

这可以用 或另一个特定于 CQ 的标签来完成,还是这是 Java 函数的工作?

最佳答案

您将不得不遍历子页面的子节点。

获取资源类型为parsys的第一个节点。拥有该节点后,您可以获得其路径并将其包含在当前页面中。

Resource childResource = resourceResolver.getResource(child.getPath());
Node childNode = childResource.adaptTo(Node.class);
Node jcrContent = childNode.getNode("jcr:content");
NodeIterator childrenNodes = jcrContent.getNodes();

while(childrenNodes.hasNext()){
Node next = childrenNodes.nextNode();
String resourceType = next.getProperty("sling:resourceType").getString();
if(resourceType.equals("foundation/components/parsys")){
%><cq:include path="<%= next.getPath() %>" resourceType="foundation/components/parsys" /><%
break;
}
}

这将在当前页面上嵌入子页面上的第一个 parsys 组件。我尚未对此进行测试,因此可能需要进行一些修改才能使其正常工作。

关于java - 如何从内容页面检索第一个 PAR 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413661/

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