0

我创建了一个getmyPages()返回的 Java 类方法iterator<Page>。现在在 HTML 页面中,我可以实例化该类并访问该类的其他属性。

但是我想以工作方式迭代这个迭代器currentPage.listChildren.....

由于currentPage.listChildren退货iterator<Page> ,我也同样退货。

但是我不能......我打印的 HTML 标签是空的。

4

3 回答 3

6

您可以使用data-sly-list属性循环遍历迭代器。以下是Feike Visser 的Sightly 教程的摘录:

<ul data-sly-list.child="${currentPage.listChildren}">
  <li>${child.title}</li>
</ul>

data-sly-unwrap属性可用于防止循环的封闭标记成为最终标记的一部分

<ul data-sly-list.child="${currentPage.listChildren}" data-sly-unwrap>
  <li>${child.title}</li>
</ul>

教程链接:http: //blogs.adobe.com/experiencedelivers/experience-management/sightly-intro-part-1

文档data-sly-list链接

于 2014-12-08T17:12:11.683 回答
-1

java 类公共类 TabControl 扩展 WCMUse {

@Override
public void activate() throws Exception {
    // nothing to be done here in this case
}

  public Iterator<Map<String, Object>> getTabTitles(){

      final I18n i18n = new I18n(getRequest());
      List<Map<String, Object>> infos = new LinkedList<Map<String,Object>>();
      String[] tabTitles = getProperties().get("tabs", String[].class);
   if (tabTitles == null || tabTitles.length == 0) {
         tabTitles = new String[1];
         tabTitles[0] = i18n.get("Tab One from sightly");
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("tabTitle",  tabTitles[0]);
         infos.add(map);
   }else if(tabTitles.length > 0){
       for (String tab : tabTitles) {
           Map<String, Object> map = new HashMap<String, Object>();
           map.put("tabTitle",  tab);
           infos.add(map);   
    }
   }
   return  infos.iterator();
}



 }
于 2015-04-21T12:23:28.717 回答
-1

在我的 Java 代码中,我返回一个列表,然后使用 Sightly

Java 类

public class ListFilesUse extends WCMUsePojo{

private String name;

private List<TrFile> files = new ArrayList<TrFile>();

好看的

<div data-sly-use.test="apps.ecolorado.components.sharedcontent.ListFilesUse">
    ${test.name}
    <ul data-sly-list.child="${test.files}">
        <li>${child.fileName}</li>
    </ul>
</div>

这是正在进行的代码。

于 2015-09-14T16:37:53.227 回答