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

Sightly condition check


Level 2

Hello all,

Below is my code.  actually i am displaying list of children (in 2 sections) on click in header navigation.

<ul class="nav navbar-nav" data-sly-list.level1="${header.mainNavPages}" >

<div class="col-md-3 col-sm-4">

<ul class="dropdown-list" data-sly-list.level2="${level1.children}">

<li data-sly-test="${level2List.index <= level1.mainNavForkIndexValue}"></li>



<div class="col-md-3 col-sm-4">

<li data-sly-test="${level2List.index > level1.mainNavForkIndexValue}"></li>



Now my requirement , i want to display same results in 3 sections, i want to segregate the list of children in 3 sections (3 divs).

Earlier  2 sections (50% in first sections and another 50% in 2nd section)

"${level2List.index <= level1.mainNavForkIndexValue}",   ${level2List.index > level1.mainNavForkIndexValue}">

Now 3 sections (30,30,40 or  33,33,34%)

I need suggestion for sightly condition on how to achieve this.

3 Replies


Community Advisor


Use Sling Model to return list(s) based on conditions. You can pass as level1.mainNavForkIndexValue parameter in Java and do all business logic there and return 3 lists.


Level 2

HI Arun,

Thanks for reply. I am just doing POC for this. I am passing string to sightly. But this is not working for me. Could you please suggest??

<div class="collapse navbar-collapse" id="main-navbar" data-sly-use.mySlingModal="${'com.ingredion.aem.core.components.content.SlingFirst @ text='Some text'}">

@Model(adaptables = [SlingHttpServletRequest, Resource])

final class SlingFirst extends AbstractComponent {

   private String reversed;;

   public void init() {

  String text = get("text", String.class);

   reversed = new StringBuilder(text).reverse().toString();


   public String getReversed() {

   return reversed;