List Children in Sightly | Community
Skip to main content
rk39193348
New Participant
January 26, 2017
Solved

List Children in Sightly

  • January 26, 2017
  • 8 replies
  • 14135 views

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
 

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 rk39193348

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

8 replies

rk39193348
New Participant
February 1, 2017

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

Feike_Visser1
Employee
January 31, 2017

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

Use the Page-api to call the right methods

rk39193348
New Participant
January 31, 2017

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?

huzaifaha985211
New Participant
January 27, 2017

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>
 
rk39193348
rk39193348AuthorAccepted solution
New Participant
January 26, 2017

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

smacdonald2008
New Participant
January 26, 2017

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. 

Feike_Visser1
Employee
January 26, 2017

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

Employee
January 26, 2017

Looks like your syntax is correct. You can refer to http://blogs.adobe.com/experiencedelivers/experience-management/htl-intro-part-1/.