我可以打印item.srNor
,但我无法打印item.details
(详细信息为LinkedHashMap
)
我的.xhtml文件(jsf)中有以下数据表
<h:dataTable id="dt1" value="#{Handler.List}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="column1" />
</f:facet>
<h:outputText value="#{item.srNor}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="column2" />
</f:facet>
<h:outputText value=""></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="column3" />
</f:facet>
<h:outputText value=""></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="column4" />
</f:facet>
<h:outputText value=""></h:outputText>
</h:column>
<f:facet name="footer">
<h:outputText value="End" />
</f:facet>
</h:dataTable>
我的java类中的List是一个数组列表。
对此的任何建议都会非常有用。
由于
答案 0 :(得分:1)
我了解#{item.details}
会返回Map
。您可以通过EL中的关联映射键访问Map
值,如下所示:
#{item.details.somekey}
这解决了item.getDetails().get("somekey")
。
如果键本身包含保留的EL字符,如点和连字符,那么您也可以使用括号表示法:
#{item.details['some.key']}
这解析为item.getDetails().get("some.key")
。
或者如果要从另一个变量获取密钥本身,则使用不带引号的括号表示法
#{item.details[otherbean.key]}
这解析为item.getDetails().get(otherbean.getKey())
。