AEM 明显看不到来自 Java 的模型字段

AEM sightly not seeing model field from Java

我有一个 Java 模型,我想在我的 HTL 中使用。它看起来像这样:

public class MyModel {
    private Model model;

    ...

    public Model getModel() {return model;}
}

public class Model {
    private String myField;

    ...

    public String getMyField() {return myField;}
}

我尝试像这样在我的模板中使用它:

<sly data-sly-use.myModel="path.to.package.MyModel" />

<div data-sly-use.localModel="${myModel.model}">${localModel.myField}</div>

然而,当我尝试使用此模型编辑页面时,我收到了 ArrayIndexOutOfBoundException,不知道从哪里来的。 当我尝试将 data-sly-use 更改为 data-sly-test 时没有异常,页面加载,但是带有测试的 div 没有显示,所以显然测试 returns 为假。 创建这样的模型是否需要在 AEM 中进行额外配置才能使用它? 我的 类 中的字段目前正在被模拟,因此它们不可能为空。

编辑: 当我将 Model 对象包装在列表中的 MyModel 中并在 HTL 中使用 data-sly-list 时,它会起作用。

data-sly-use是为了实例化Use Objects,而不是为了赋值变量;您应该改用 data-sly-set

或者,您可以只使用 ${myModel.model.myField}