【发布时间】:2011-06-19 17:20:19
【问题描述】:
我有一个 JSF 数据表,它根据项目的布尔属性有条件地显示每个项目,如下所示:
<h:dataTable value='#{sessionBean.items}' var='item'>
<h:column rendered='#{item.visible}'>
<h:outputText value='#{item.description}'/>
</h:column>
</h:dataTable>
我的问题是 rendered 属性似乎根本没有引用我的项目中的 visible 属性。我已经在属性的 getter 中放置了一条跟踪消息,并且可以确认 getter 根本没有被调用。但是,真正让我感到困惑的是,以下方法有效:
<h:dataTable value='#{sessionBean.items}' var='item'>
<h:column rendered='true'>
<h:outputText value='visible = #{item.visible}'/>
<h:outputText value='#{item.description}'/>
</h:column>
</h:dataTable>
也就是说,在这种情况下,所有项目都被渲染,并且为每个项目成功输出了文本“visible = true”或“visible = false”。 仅在列 rendered 属性中 getter 不起作用。
有谁知道可能导致这种行为的原因,以及我应该做些什么来纠正它?
【问题讨论】:
标签: jsf