You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSF中展示Map<String, Object>类型数据?

JSF中展示Map<String, Object>数据的正确实现

原代码存在的问题

  • 外层<c:forEach>里的entrySet().toArray()完全多余,直接遍历entrySet()即可,转数组会导致遍历元素类型异常,无法正常获取key和value。
  • 内层<c:forEach>误用了value属性(正确属性应为items),更关键的是:Map的value是单个自定义对象而非集合,根本不需要内层循环,直接访问该对象的属性即可。

修正后的代码

<c:forEach items="#{accountController.infoCli.entrySet()}" var="info">
    <p><h:outputText value="#{info.key}"/></p>
    <!-- 直接通过info.value访问对象属性,无需内层循环 -->
    <ui:include src="你的模板文件路径.xhtml">
        <ui:param name="beneficiaire" value="#{info.value.objectName}"/>
        <ui:param name="prelCBInfos" value="#{info.value.list1}"/>
        <ui:param name="aboPrelInfos" value="#{info.value.list2}"/>
    </ui:include>
</c:forEach>

必要注意事项

  • 确保getInfoCli()返回的Object对应类有公共getter方法(如getObjectName()、getList1()、getList2()),EL表达式只能通过公共getter访问属性。
  • <ui:include>的src属性必须填写实际的模板文件路径,不能留空。

内容的提问来源于stack exchange,提问作者loubna damri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:02:40