使用HTL调用时在Java中使用“is”或“get”有什么区别
在 AEM 中,当我们调用一些要在我们的 HTL 前端代码中使用的方法或函数时,就像这样。
public boolean isAboolean() {
return "test";
}
对于 HTML,模板语言 HTL
<sly data-sly-test.boolean="${property.Aboolean}" />
“get”也会发生同样的事情,我们是否需要将它添加到 HTL 代码中,或者我们可以只写方法名称而不使用“is”或“get”?
我们必须这样做,还是会这样?
<sly data-sly-test.boolean="${property.isAboolean}" />
回答
该HTL规格是有点通用的,说你可以访问的成员如下:${myObject.key}。默认实现 (Sling/AEM) 遵循 JavaBeans 命名约定,并将尝试调用getKey()或isKey()。它还将尝试调用key()或输出key在 POJO 情况下命名的字段。AEM 文档(属性访问部分)中提供了更多信息。
对于您的示例,您需要调整 HTL 表达式中成员的大小写:${property.aboolean}并且${property.isAboolean}都应该导致调用isAboolean()方法。
由于不允许调用带参数的方法,因此不使用括号。