Retrieve all the components has specific resource type in the given page without query builder | Community
Skip to main content
Level 3
July 21, 2023
Solved

Retrieve all the components has specific resource type in the given page without query builder

  • July 21, 2023
  • 2 replies
  • 917 views

Hello All ,

 

I need to retrieve the component values that match with specific resource type and read the component values. We can have n number of the same components on the given page.

 

Please provide any suggestions

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Manu_Mathew_

@sateeshkreddy You could use sling APIs to do so-

Take a root path

loop the resource and nodes as per your requirement via listchildren, Iterators,hasNode() etc until the leaf node.

use value map object - eg: currentResource.getValueMap()

compare the slingResourceType and read your values.

 

You could use the querybuilder to get the list of resources using a resource type rather than looping, Is there any particular reason you don't want to use the query builder? You could also index it if needed.

 

2 replies

ayushmishra07
Adobe Employee
Adobe Employee
July 21, 2023

Hi @sateeshkreddy ,

Can you please confirm if you want the list of matching components from one page only or list of all the matching components from the current as well as child page.

Manu_Mathew_
Community Advisor
Manu_Mathew_Community AdvisorAccepted solution
Community Advisor
July 22, 2023

@sateeshkreddy You could use sling APIs to do so-

Take a root path

loop the resource and nodes as per your requirement via listchildren, Iterators,hasNode() etc until the leaf node.

use value map object - eg: currentResource.getValueMap()

compare the slingResourceType and read your values.

 

You could use the querybuilder to get the list of resources using a resource type rather than looping, Is there any particular reason you don't want to use the query builder? You could also index it if needed.