怎么用struts2标签迭代Map集合
展开全部
1、定义一个Map集合:private Map<String,List<CoreArticle>> newSchool = new HashMap<String,List<CoreArticle>>();
2、向集合里面添加数据:
coreModule = moduleSrv.findModuleByParentId();// 新闻模块
for (int i = 0; i < coreModule.size(); i++) {
CoreModule module = coreModule.get(i);
List<CoreArticle> article = schoolSrv.findModuleNews(module
.getModuleId());
newSchool.put(module.getModuleName(), article);
}
注意:newSchool.put()中的module.getModuleName()不能用固定的,如统一用module,这样会导致在迭代时只显示最后一条数据。
3、页面进行迭代
<s:iterator value="newSchool" status="ns">
<dl>
<ui>
<s:iterator value="value" status="school">
<li class="<s:if test='#school.index lte 2'>current</s:if>">
<s:property value="#school.index + 1"/>
<a title="<s:property value='coreModule.moduleId' />" href="#" target="_blank"><s:property value="newTitle" /></a>
</li>
</s:iterator>
</ui>
</dl>
</s:iterator>
newSchool:是Action中定义的Map,<s:iterator value="value" status="school">中的value 表示Map对应的value
2、向集合里面添加数据:
coreModule = moduleSrv.findModuleByParentId();// 新闻模块
for (int i = 0; i < coreModule.size(); i++) {
CoreModule module = coreModule.get(i);
List<CoreArticle> article = schoolSrv.findModuleNews(module
.getModuleId());
newSchool.put(module.getModuleName(), article);
}
注意:newSchool.put()中的module.getModuleName()不能用固定的,如统一用module,这样会导致在迭代时只显示最后一条数据。
3、页面进行迭代
<s:iterator value="newSchool" status="ns">
<dl>
<ui>
<s:iterator value="value" status="school">
<li class="<s:if test='#school.index lte 2'>current</s:if>">
<s:property value="#school.index + 1"/>
<a title="<s:property value='coreModule.moduleId' />" href="#" target="_blank"><s:property value="newTitle" /></a>
</li>
</s:iterator>
</ui>
</dl>
</s:iterator>
newSchool:是Action中定义的Map,<s:iterator value="value" status="school">中的value 表示Map对应的value
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询