Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

List Children in Sightly

Avatar

Level 4

Hi,
I am using the below code to print list children items on page, but it's not working. Can anyone please suggest how to achieve this?

<ul data-sly-list.child="${currentPage.listChildren}">

 entering <li>${child.title}</li>
</ul>

Regards
 

1 Accepted Solution

Avatar

Correct answer by
Level 4

Hi,

It works thanks. If i have 3 inner pages b under a and c under b and i want to print all the inner pages how do i achieve it.

Regards

View solution in original post

8 Replies

Avatar

Level 10

Given this page structure: 

and this code: 

<ul data-sly-list.child="${currentPage.listChildren}">

 <li> entering: ${child.title}</li>
</ul>

Output is: 

If you are not getting output - make sure that your page has child pages. The code works. 

Avatar

Correct answer by
Level 4

Hi,

It works thanks. If i have 3 inner pages b under a and c under b and i want to print all the inner pages how do i achieve it.

Regards

Avatar

Level 2

One way to do it is to use a bundled Java Class where you can put your logic and then return the result you want into your componentName.html.  

Here is an example from https://docs.adobe.com/docs/en/htl/docs/use-api/java.html

 

/apps/my-example/component/info/Info.java
package org.example.app.components;
  
import com.adobe.cq.sightly.WCMUse;
  
public class Info extends WCMUse {
    ...
}
 

Code samples are intended for illustration purposes only.

and, the data-sly-use statement must reference the fully qualified class name, as opposed to just the local class name:

/apps/my-example/component/info/info.html
<div data-sly-use.info="org.example.app.components.info.Info">
  <h1>${info.title}</h1>
  <p>${info.description}</p>
</div>
 

Avatar

Level 4

Thanks for your mail, but i am looking to pull all the inner pages page under b which is under a. Please let me know how to achieve this?

Avatar

Employee

I would implement this in Java and return a Map to the Sightly component.

Use the Page-api to call the right methods

Avatar

Level 4

Thanks for your mail. The below two lines are not giving me node name. In jsp it works, but not in sightly. Can you please share a sample code which has node conversion, page conversion etc.

node = currentPage.getContentResource().adaptTo(Node.class);
        title = node.getName();