以下使用_trip
作为迭代器变量
<h:dataTable var="_trip" value="#{trips}">
<p:column>
<f:facet name="header">Trip #</f:facet>
#{_trip.trip_id}
</p:column>
但是,使用trip
作为迭代器var不会打印trip_id
<h:dataTable var="trip" value="#{trips}">
<p:column>
<f:facet name="header">Trip #</f:facet>
#{trip.trip_id}
</p:column>
我只是想了解为什么除trip
之外的任何内容有效,aTrip, mytrip, blah
都可以打印trip_id
答案 0 :(得分:1)
正如评论中所述,问题在于您已经将另一个名为trip
的变量存储为页面,请求,会话或应用程序上下文。这可以通过在您的facelet内容中输出此trip
变量来识别,它还可以帮助评论<h:dataTable>
以避免使用<ui:remove>
在页面中发生任何其他类型的冲突:
#{trip}
<ui:remove>
<h:dataTable var="trip" value="#{trips}">
<p:column>
<f:facet name="header">Trip #</f:facet>
#{trip.trip_id}
</p:column>
<!-- the rest of your other JSF/Facelets code... -->
</h:dataTable>
</ui:remove>