我有一个名为 sportMap 的 Hashtable<Integer, Sport> 和一个来自我的支持 bean 的 sportIds (List<Integer> sportIds) 列表。Sport 对象有一个 List<String> 设备列表。我可以使用统一的 EL 执行以下操作以获取每个运动的设备列表吗?
<h:dataTable value="#{bean.sportIds}" var="_sportId" >
<c:forEach items="#{bean.sportMap[_sportId].equipmentList}" var="_eqp">
<h:outputText value="#{_eqp}"></h:outputText>
<br/>
</c:forEach>
</h:dataTable>
尝试运行此 JSP 代码时出现以下异常。
15:57:59,438 错误 [ExceptionFilter] 异常根本原因 javax.servlet.ServletException:javax.servlet.jsp.JspTagException: 不知道如何在 <forEach> 中迭代提供的“项目”。
这是我的环境的打印
服务器:JBossWeb/2.0.1.GA 小服务程序规范:2.5 JSP版本:2.1 JSTL 版本:1.2 Java版本:1.5.0_14
注意:以下使用 JSF 标记确实有效。它打印出在 sportIds 列表中指定的每项运动的设备列表。
<h:dataTable value="#{bean.sportIds}" var="_sportId" >
<h:outputText value="#{bean.sportMap[_sportId].equipmentList}">
</h:outputText>
</h:dataTable>
我想使用 c:forEach 标签。有谁知道这是否可能?如果没有,有人有建议吗?最后我想要一个堆叠列表而不是由设备列表提供的逗号分隔列表。toString(); (另外,不想覆盖 toString())。