Search code examples
javadictionaryaemsightly

how do I get key/value in sightly from java using a map within objects


I got an "Invalid property name" exception by using objects as value in the map.

HTML (Sightly)

<div data-sly-list.passenger="${model.getAddonsMatchingPassengers}">
    <h3>${passenger.firstName}</h3>
    <p>${model.getAddonsMatchingPassengers[passenger].addonType}</p>
</div>

Java

Map<Passenger, Addon> getAddonsMatchingPassengers() {
    Map<Passenger, Addon> matchingAddons = new HashMap<>();
    ...
        matchingAddons.put(passenger, addon);
    ...
    return matchingAddons;
}

Does anyone have an idea?


Solution

  • I got the solution, using an "entrySet":

    <div data-sly-list.passenger="${model.getAddonsMatchingPassengers.entrySet}">
        <h3>${passenger.key.firstName}</h3>
        <p>${passenger.value.addonType}</p>
    </div>