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}
。
我有一个 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}
。