В AEM у меня есть класс использования A, который расширяет WCMUsePojo
. У него есть один activate()
метод с аннотацией @Override
, где я читаю свойство (скажем, продукт) и присваиваю переменную. Кроме того, у меня есть метод получения, чтобы прочитать свойство. Теперь есть еще один класс B, который расширяет класс A и имеет метод activate()
с аннотацией @Override
. В методе активации я читаю еще одно свойство.
Теперь из HTL я ссылаюсь на класс B и пытался получить «свойство продукта» (предполагая, что это свойство будет доступно в классе B через наследование), но я получаю нулевое значение. Но когда я изменяю модификатор свойства на static
в классе A, он работает нормально.
См. Код ниже.
public class ClassA extends WCMUsePojo {
private String product;
@Override
public void activate() throws Exception {
product = getProperties().get(“product”, "");
}
public String getProduct() {
return product;
}
}
public class ClassB extends ClassA {
private String lotno;
@Override
public void activate() throws Exception {
lotno = getProperties().get(“lotno”, "");
}
public String getLotno() {
return lotno;
}
}
<div data-sly-use.productDetails="test.sample.ClassB"/>
${productDetails.product}
${productDetails.product}
равно null
, если я не изменю свойство продукта на статическое в ClassA
. Может кто-нибудь объяснить, почему это так?