使用 HTL 调用时,在 java 中使用 "is" 或 "get" 有什么区别

What is the difference between using "is" or "get" in java when calling it with HTL

在 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 specification is a bit generic and says that you can access members like this: ${myObject.key}. The default implementation (Sling/AEM) follows the JavaBeans naming convention and will attempt to call either getKey() or isKey(). It will also attempt to call key() or output a field named key in case of POJOs. A bit more information is available in the AEM docs(属性 访问部分)。

对于您的示例,您需要调整 HTL 表达式中成员的大小写:${property.aboolean}${property.isAboolean} 都应导致调用 isAboolean() 方法。

因为不允许调用带参数的方法,所以不使用括号。