Access Inner Class Variables In Sightly | Community
Skip to main content
April 20, 2019

Access Inner Class Variables In Sightly

  • April 20, 2019
  • 2 replies
  • 3378 views

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,

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

April 20, 2019

May i know what is the requirement?

Why are you using inner class?

vdhim23Author
April 20, 2019

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.

vdhim23Author
April 20, 2019

Issue solved, changed the access specifier of inner class.

smacdonald2008
April 20, 2019

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