如何遍历数据狡猾的调用中的数据

时间:2019-10-04 19:33:53

标签: java adobe aem sightly

我有一些数据是从一个数据狡猾的调用中获取的,我正在尝试使用一个数据狡猾列表的调用来遍历它。目前这是我的代码

<div data-sly-use.info="GetInformation" data-sly-unwrap></div>

<ul data-sly-list.test="${info.tests}">
    <li>${test.name}</li>
</ul>

测试 是从使用调用返回的数组列表。

2 个答案:

答案 0 :(得分:2)

在我看来,您在正确的轨道上。这是我所拥有的:

helloworld.html

<sly data-sly-use.info="GetInformation"/>
<ul data-sly-list.test="${info.tests}">
    <li>${test.name}</li>
</ul>

注意<sly>元素会自动展开,并且不会在HTML中呈现,因此我用它来替换了空的<div>。更多信息here

GetInformation.java

package apps.wknd.components.content.helloworld;

import com.adobe.cq.sightly.WCMUsePojo;

import java.util.Arrays;
import java.util.List;

public class GetInformation extends WCMUsePojo {

    @Override
    public void activate() throws Exception {
        //noop
    }

    public List<Test> getTests() {
        return Arrays.asList(new Test("test1"), new Test("test2"), new Test("test3"));
    }

    public class Test {

        private String name;

        public Test(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}

结果:

enter image description here

DOM:

enter image description here

建议:

如果您的代码有问题,我怀疑它可能是在Java方面,而不是在HTL中。以下是一些需要注意的事项:

  • 您的Java文件是否正确位于与HTL文件相同的级别?
  • 您的Java类是否有getTests()方法?
  • 您的Java类是否扩展WCMUsePojo?

答案 1 :(得分:0)

您本可以对此进行简单的Google搜索。我花了here

这是一个例子

<dl data-sly-list="${currentPage.listChildren}">
    <dt>index: ${itemList.index}</dt>
    <dd>value: ${item.title}</dd>
</dl>
相关问题