我正在编写一个 AEM 组件,并且返回一个来自 SDK 的类型的对象。该类型具有公共(public)属性并且没有 setter/getter 。为了简单起见,它可以这样定义:
class MyItem {
public String prop1;
public String prop2;
}
现在通常,我需要一个 getter,如下所示:
class MyItem {
public String prop1;
public String prop2;
public String getProp1() {
return prop1;
}
}
但我没有这种奢侈。现在,我有一个 Java 实现,它使用另一种类型来解决这个问题,但我认为 HTL 不允许我直接访问 prop1
(它调用 getter),这有点疯狂。我已经查看了文档,但看不到任何关于如何完成此操作的指示。我希望能够写:
${item.prop1}
并让它访问公共(public)属性,而不是调用 getProp1()
。
这可能吗?
最佳答案
如果公共(public)字段是由 Java Use 类声明的,则不需要这些字段的 getter。 Apache Sling 中实际上有一个涵盖此场景的测试:
这也适用于从 bundle 导出的使用类。
对于使用适配器模式的吊带模型 [0] 我创建了 https://issues.apache.org/jira/browse/SLING-7075 .
关于aem - HTL 无需 Getter 即可访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45805937/