Adobe 如何在sightly中迭代对象列表?
我创建了一个Java类方法Adobe 如何在sightly中迭代对象列表?,adobe,aem,sightly,Adobe,Aem,Sightly,我创建了一个Java类方法getmyPages(),它返回iterator。 现在在HTML页面中,我可以实例化该类并访问该类的其他属性 但是,我想以currentPage.listChildren的工作方式迭代这个迭代器 因为currentPage.listChildren返回iterator 我也同样返回 但是我不能。。。。。。我在其中打印的HTML标记是空的。您可以使用数据列表属性在迭代器上循环。以下是Sightly教程的摘录: <ul data-sly-list.child="${
getmyPages()
,它返回iterator
。
现在在HTML页面中,我可以实例化该类并访问该类的其他属性
但是,我想以currentPage.listChildren
的工作方式迭代这个迭代器
因为currentPage.listChildren
返回iterator
我也同样返回
但是我不能。。。。。。我在其中打印的HTML标记是空的。您可以使用
数据列表
属性在迭代器上循环。以下是Sightly教程的摘录:
<ul data-sly-list.child="${currentPage.listChildren}">
<li>${child.title}</li>
</ul>
链接到教程:
数据列表的文档编制
:您可以使用数据列表
属性在迭代器上循环。以下是Sightly教程的摘录:
<ul data-sly-list.child="${currentPage.listChildren}">
<li>${child.title}</li>
</ul>
链接到教程:
数据列表的文档
: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();
}
}
@覆盖
public void activate()引发异常{
//在这种情况下,这里没有什么可以做的
}
公共迭代器getTabTitles(){
最终I18n I18n=新I18n(getRequest());
List infos=new LinkedList();
String[]tabTitles=getProperties().get(“tabs”,String[].class);
if(tabTitles==null | | tabTitles.length==0){
tabTitles=新字符串[1];
tabTitles[0]=i18n.get(“Tab One from sightly”);
Map Map=newhashmap();
map.put(“tabTitle”,tabTitles[0]);
添加(地图);
}else if(tabTitles.length>0){
用于(字符串选项卡:选项卡标题){
Map Map=newhashmap();
map.put(“tabTitle”,tab);
添加(地图);
}
}
返回infos.iterator();
}
}
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();
}
}
@覆盖
public void activate()引发异常{
//在这种情况下,这里没有什么可以做的
}
公共迭代器getTabTitles(){
最终I18n I18n=新I18n(getRequest());
List infos=new LinkedList();
String[]tabTitles=getProperties().get(“tabs”,String[].class);
if(tabTitles==null | | tabTitles.length==0){
tabTitles=新字符串[1];
tabTitles[0]=i18n.get(“Tab One from sightly”);
Map Map=newhashmap();
map.put(“tabTitle”,tabTitles[0]);
添加(地图);
}else if(tabTitles.length>0){
用于(字符串选项卡:选项卡标题){
Map Map=newhashmap();
map.put(“tabTitle”,tab);
添加(地图);
}
}
返回infos.iterator();
}
}
在我的Java代码中,我返回一个列表,然后使用
Java类
public class ListFilesUse extends WCMUsePojo{
private String name;
private List<TrFile> files = new ArrayList<TrFile>();
public类listfilesue扩展了WCMUsePojo{
私有字符串名称;
私有列表文件=新的ArrayList();
明显地
<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>
${test.name}
- ${child.fileName}
这是正在运行的代码。在我的Java代码中,我返回一个列表,然后使用 Java类
public class ListFilesUse extends WCMUsePojo{
private String name;
private List<TrFile> files = new ArrayList<TrFile>();
public类listfilesue扩展了WCMUsePojo{
私有字符串名称;
私有列表文件=新的ArrayList();
明显地
<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>
${test.name}
- ${child.fileName}
这是正在运行的代码。你能不能也发布你的Sighly代码,这将有助于理解你的问题。虽然可能只有列表,但我从未使用迭代器尝试过。你可以将迭代器转换为包含以下问题答案的列表:你能发布你的Sighly代码吗,这将有助于理解你的问题。虽然可能只允许列表,但我从未使用迭代器尝试过。你可以将迭代器转换为列表,并给出以下问题的答案: