[英]AEM HTL data-sly-list just prints array as a string
我有一个 Java 文件,它返回一个 ArrayList 的带有 button_text 属性的按钮
public void activate() throws Exception {
buttonsNode = getResource().adaptTo(Node.class).getNode("buttons");
buttons = new ArrayList<Button>();
try{
NodeIterator ni = buttonsNode.getNodes();
while (ni.hasNext()) {
Node n = (Node)ni.nextNode();
String button_text = n.getProperty("buttonText").getString();
Button bs = new Button(button_text);
buttons.add(bs);
}
}
catch(Exception e){
}
}
public ArrayList<Button> getButtonsListObject(){
return buttons;
}
public class Button {
String button_text;
public Button(String button_text) {
this.button_text = button_text;
}
public String getButtonText() {
return button_text;
}
}
如果我把
<ul data-sly-list.button="${PillButtons.buttons}">
<li>${button}</li>
</ul>
在我的 HTL 中,我只得到一个列表,其中一个项目只是纯文本数组:“[{“buttonText”:one},{“buttonText”:two},{“buttonText”:three}]”
并且在做
<ul data-sly-list.button="${PillButtons.getButtonsListObject}">
<li>${button}</li>
</ul>
返回一个包含三个项目的列表,但它们都是空白的。
如何正确访问和打印此 ArrayList?
对于第一次尝试,我不确定${PillButtons.buttons}
来自哪里,也许您还有一个返回 JSON 的String getButtons()
。
对于第二个,您在${PillButtons.getButtonsListObject}
中使用了正确的方法(您也可以使用${PillButtons.buttonsListObject}
因为 HTL 足够聪明,可以查找 getter),但您还需要打印出<li>${button.buttonText}<li>
得到预期的 output。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.