使用queryBuilder获取aem中特定属性的所有值

使用queryBuilder获取aem中特定属性的所有值,aem,Aem,我有一个场景,在这个场景中,我希望使用QueryBuilderAPI获取AEM中特定路径下的属性的所有值。 此属性可以具有单值或多值。 任何帮助都将不胜感激 使用查询生成器api无法直接获取属性。我建议您创建一个servlet资源,它需要路径和属性名 通过QueryBuilder使用给定路径获取jcr节点。然后,需要遍历结果以检查节点的属性。一旦有了节点,就可以访问多个属性值 使用查询生成器api无法直接获取属性。我建议您创建一个servlet资源,它需要路径和属性名 通过QueryBuilde

我有一个场景,在这个场景中,我希望使用QueryBuilderAPI获取AEM中特定路径下的属性的所有值。 此属性可以具有单值或多值。
任何帮助都将不胜感激

使用查询生成器api无法直接获取属性。我建议您创建一个servlet资源,它需要路径和属性名


通过QueryBuilder使用给定路径获取jcr节点。然后,需要遍历结果以检查节点的属性。一旦有了节点,就可以访问多个属性值

使用查询生成器api无法直接获取属性。我建议您创建一个servlet资源,它需要路径和属性名


通过QueryBuilder使用给定路径获取jcr节点。然后,需要遍历结果以检查节点的属性。一旦有了节点,就可以访问多个属性值

可以帮助您的示例。下面是用简单的JSP脚本编写的示例

 <%
Iterator<Resource> iter = resourceResolver.findResources("/jcr:root/content/geometrixx-outdoors//element(*, nt:unstructured)[(@imageRotate = '0' or @imageRotate = '1')]","xpath");
while (iter.hasNext()) {
    Resource child = iter.next();
    out.println("</br>"+child.getPath());
    Node node = child.adaptTo(Node.class);
    Property nProp = node.getProperty("imageRotate");

if(nProp.isMultiple()) // This condition checks for properties whose type is String[](String array)  
      {  
Value[] values = nProp.getValues();
    out.println(" :: This is a multi valued property ::");
    for (Value v : values) {
        out.println("</br>"+"Property Name = "+nProp.getName()+" ; Property Value= "+v.getString());
    }  
      }  
      else if(!nProp.getDefinition().isMultiple()){  
          out.println("</br>"+"Property Name = "+nProp.getName()+" ; Property Value= "+nProp.getString());
      }  
}
%>
这里我使用了迭代器iter=resourcesolver.findResourcesquery,xpath;它可以为您提供与/content/geometricxx/path下的imageRotate属性匹配的查询结果,该属性由单值和多值组成,如下面的屏幕截图所示


可以帮助你的例子。下面是用简单的JSP脚本编写的示例

 <%
Iterator<Resource> iter = resourceResolver.findResources("/jcr:root/content/geometrixx-outdoors//element(*, nt:unstructured)[(@imageRotate = '0' or @imageRotate = '1')]","xpath");
while (iter.hasNext()) {
    Resource child = iter.next();
    out.println("</br>"+child.getPath());
    Node node = child.adaptTo(Node.class);
    Property nProp = node.getProperty("imageRotate");

if(nProp.isMultiple()) // This condition checks for properties whose type is String[](String array)  
      {  
Value[] values = nProp.getValues();
    out.println(" :: This is a multi valued property ::");
    for (Value v : values) {
        out.println("</br>"+"Property Name = "+nProp.getName()+" ; Property Value= "+v.getString());
    }  
      }  
      else if(!nProp.getDefinition().isMultiple()){  
          out.println("</br>"+"Property Name = "+nProp.getName()+" ; Property Value= "+nProp.getString());
      }  
}
%>
这里我使用了迭代器iter=resourcesolver.findResourcesquery,xpath;它可以为您提供与/content/geometricxx/path下的imageRotate属性匹配的查询结果,该属性由单值和多值组成,如下面的屏幕截图所示

如果我理解正确,您是否正在查找导致内容路径节点列表的查询?或者单独检索特定内容路径的属性值?。到目前为止,查询生成器用于检索特定搜索匹配的内容路径。如果我理解正确,您是否正在查找结果为内容路径节点列表的查询?或者单独检索特定内容路径的属性值?。到目前为止,查询生成器用于检索特定搜索匹配的内容路径。