【发布时间】:2015-08-26 01:08:21
【问题描述】:
我正在学习使用 AEM6 的一项新功能 - 吊索模型。我已经按照here 描述的步骤获取了节点的属性
@Model(adaptables = Resource.class)
public class UserInfo {
@Inject @Named("jcr:title")
private String title;
@Inject @Default(values = "xyz")
private String firstName;
@Inject @Default(values = "xyz")
private String lastName;
@Inject @Default(values = "xyz")
private String city;
@Inject @Default(values = "aem")
private String technology;
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getTechnology() {
return technology;
}
public String getTitle() {
return title;
}
}
并从资源中改编
UserInfo userInfo = resource.adaptTo(UserInfo.class);
现在我的层次结构为 -
+ UserInfo (firstName, lastName, technology)
|
+ UserAddress (houseNo, locality, city, state)
现在我想获取UserAddress 的属性。
我从文档页面得到了一些提示,例如 -
如果注入的对象与所需的类型不匹配,并且该对象实现了 Adaptable 接口,Sling Models 将尝试对其进行适配。这提供了创建丰富的对象图的能力。例如:
@Model(adaptables = Resource.class)
public interface MyModel {
@Inject
ImageModel getImage();
}
@Model(adaptables = Resource.class)
public interface ImageModel {
@Inject
String getPath();
}
当资源适应
MyModel时,名为image的子资源会自动适应ImageModel的实例。
但我不知道如何在我自己的课程中实现它。请帮我解决这个问题。
【问题讨论】:
标签: aem sling-models