Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
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

Employee

Indeed syntax looks ok, is there no <ul> displayed?

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();