Uczę się korzystać z jednej z nowych funkcji AEM6 - Sling Models. I już pobrane właściwości węzła wykonanie kroków opisanych hereJak zaadaptować węzeł podrzędny w modelu zawiesia AEM6
@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;
}
}
i dostosować go z zasobu
UserInfo userInfo = resource.adaptTo(UserInfo.class);
teraz mam hierarchię jako -
+ UserInfo (firstName, lastName, technology)
|
+ UserAddress (houseNo, locality, city, state)
Teraz chcesz pobrać właściwości urządzenia UserAddress
.
ja dostałem kilka wskazówek ze strony dokumentacji, takich jak -
Jeśli wstrzyknięto obiekt nie pasuje żądany rodzaj i przedmiot realizuje Adaptable interfejs, Sling modele postara się go dostosować. Zapewnia to możliwość tworzenia bogatych wykresów obiektów. Na przykład:
@Model(adaptables = Resource.class)
public interface MyModel {
@Inject
ImageModel getImage();
}
@Model(adaptables = Resource.class)
public interface ImageModel {
@Inject
String getPath();
}
Gdy zasób jest przystosowany do
MyModel
, zasób dziecko o nazwie obraz jest automatycznie dostosowana do instancjiImageModel
.
, ale nie wiem, jak to wdrożyć w moich własnych klasach. Proszę, pomóż mi się z tym uporać.