Использование @ChildResource
аннотации
@ChildResource
@Named("image") //Child node name
private Resource childResource;
private String imagePath;
public String getImagePath() {
return imagePath;
}
@PostConstruct
public void init() {
imagePath = childResource.getValueMap().get("fileReference", String.class);
}
Получите imagePath в разметке Sightly / HTL, используя
<div data-sly-use.model="package.name.TopBanner">
<img src="${model.imagePath}"/>
</div>
Другой способ согласно документации Sling docs использует аннотацию @Via
, поскольку API модели Sling 1.3.4.
Пример из документации,
@Model(adaptables=Resource.class)
public interface MyModel {
// will return resource.getChild("jcr:content").getValueMap().get("propertyName", String.class)
@Inject @Via(value = "jcr:content", type = ChildResource.class)
String getPropertyName();
}