Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

Access Inner Class Variables In Sightly

Avatar

Level 5

Hi,

I am trying to access inner class properties using data-sly-list as below but it shows me there are 3 objects but not sure how to print the values of objects. I tried with . operator but nothing is visible.

<sly data-sly-test="${tabContentItems.showFilters}">
  <ul class="nav nav-tabs" role="tablist">
  <sly data-sly-list.nav="${tabContentItems.filterNav}">
  # ${nav.filterName}
  </sly>
  </ul>
</sly>

Snippet of sling model :

@Model(adaptables = Resource.class)
public class TabSubItem {

// Populating CTA

  private class CTA {
  private String filterName;
  private String filterImage;


  public String getFilterName() {
  return filterName;
  }

  public void setFilterName(String filterName) {
  this.filterName = filterName;
  }

  public String getFilterImage() {
  return filterImage;
  }

  public void setFilterImage(String filterImage) {
  this.filterImage = filterImage;
  }

  public CTA(String filterName, String filterImage) {
  this.filterName = filterName;
  this.filterImage = filterImage;
  }
  }
}

Thanks,

4 Replies

Avatar

Level 3

May i know what is the requirement?

Why are you using inner class?

Avatar

Level 5

Hi,

I can achieve my use-case in other way also but curious to know whether we can access inner class variables via object of outer class in sightly.

Avatar

Level 5

Issue solved, changed the access specifier of inner class.

Avatar

Level 10

If you setup your sling model class properly - there should be no reason to attempt to access an inner class. You should be able to get the data, including collections as shown here - in the Sling Model section: Building Experience Manager Components using Granite/Coral Resource Types