JSF dataTable迭代器var冲突

时间:2014-01-16 14:38:43

标签: jsf facelets

以下使用_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

1 个答案:

答案 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>