将布尔值显示为图标

时间:2014-03-19 14:39:53

标签: jsf

我有5列的DataTable。在一列中是布尔值 - true或false。我想显示图标而不是“true”或“false”文字。如何将布尔值显示为图标?

4 个答案:

答案 0 :(得分:2)

这很简单。您只需使用呈现的属性。试试这段代码:

<h:column> 
   <f:facet name="header">Col Name</f:facet> 
     <h:graphicImage value="../image1.jpg" rendered="#{yourBoolean}" /> 
     <h:graphicImage value="../image2.jpg" rendered="#{!yourBoolean}" /> 
</h:column>

答案 1 :(得分:2)

这可以通过使用图片图片标记的rendered属性来实现:

<h:dataTable value="#{managedBean.yourList}" var="list" rules="all" >    
    <h:column>
    ...
    </h:column>
    <h:column>
          <f:facet name="header">Your column name</f:facet>
          <h:graphicImage rendered="#{list.yourBoolean eq true}" library="images/SomeFolder" name="someTrueImage.png" />
          <h:graphicImage rendered="#{list.yourBoolean eq false}" library="images/SomeFolder" name="someFalseImage.png" />
    </h:column>
    <h:column>
    ...
    </h:column>
</h:dataTable>

答案 2 :(得分:2)

您可以使用rendered属性(正如您在其他答案中看到的那样),或使用三元运算符在value标记内合并条件:

<h:graphicImage value="#{yourBoolean ? image1.png : image2.png}" />

答案 3 :(得分:2)

最好的(IMO)将是:

<h:dataTable value="#{myBean.myList}" var="myVarName">  

。 .. ...

<h:panelGroup styleClass="#{myVarName.myBoolean?'myTrueClass':'myFalseClass'}"/>

在css中的位置

.myTrueClass {
    width: 16px;
    height: 16px;
    background-image:url('../resources/images/myTrue.png');
}

.myFalseClass {
    width: 16px;
    height: 16px;
    background-image:url('../resources/images/myFalse.png');
}

通过使用css,您将使您的生活更轻松......更容易维护