Jsf 渲染列取决于行渲染

Jsf 渲染列取决于行渲染,jsf,tablecolumn,conditional-rendering,Jsf,Tablecolumn,Conditional Rendering,我有这样一个数据表: <h:dataTable value="#{myList}" var="myVariable" > <h:column> <f:facet name="header"/> <h:graphicImage style="display:block; margin:0px auto" value="imageURL" rendered="#{condition}"/> </h:column>

我有这样一个数据表:

<h:dataTable value="#{myList}" var="myVariable" >
  <h:column>
    <f:facet name="header"/>
    <h:graphicImage style="display:block; margin:0px auto" value="imageURL" rendered="#{condition}"/>
  </h:column>
  <h:column>
    <f:facet name="header">
      Attribute1
    </f:facet>
    <h:outputText style="display:block; text-align:center" value="#{myVariable.attribute1}" />
  </h:column>
  <h:column>
    <f:facet name="header">
      Attribute2
    </f:facet>
    <h:outputText style="display:block; text-align:center" value="#{myVariable.attribute2}" />
  </h:column>
  <h:column>
    <f:facet name="header">
      Attribute3
    </f:facet>
    <h:outputText style="display:block; text-align:center" value="#{myVariable.attribute3}" />
  </h:column>
</h:dataTable>

属性1
属性2
属性3
如您所见,我有多个列显示变量的所有属性,如果满足条件,则在一个列中显示一个图像

但是,如果不满足该条件,则会给我们提供一个表,其中包含一个空列,我不希望显示该列


当所有行中都没有显示图像时,有没有办法隐藏该列?

您正在使用插件?@Roshana:Nope。OP正在使用JSF。@卡洛斯:在问JSF问题时,请不要使用[java]标记。Java SE用户显然不能理解和回答JSF问题。只要坚持使用[jsf]作为主标记,就可以在bean中运行数据并确定是否显示图像。将其存储在布尔值中(如图所示)。然后
@MitchBroadhead我想了想,但这是另一个循环,通过所有的数据。。。如果有10行这不是问题,但是如果有1M行呢。。。