我创建了一个返回getmyPages()
的Java类方法iterator<Page>
。
现在在HTML页面中,我能够实例化该类并访问该类的其他属性。
但是我希望以currentPage.listChildren
的工作方式迭代这个迭代器.....
由于currentPage.listChildren
返回iterator<Page>
我也回来了。
但是我无法......我正在打印的HTML标签是空的。
答案 0 :(得分:5)
您可以使用data-sly-list
属性循环遍历迭代器。以下是Feike Visser's 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
的文档:link
答案 1 :(得分:0)
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();
}
}
答案 2 :(得分:-1)
在我的Java代码中,我返回一个List然后使用Sightly
Java Class
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>
这是在进行中的代码。