# Farbe der Tabellenzellen in "<t:dataTable>"



## smitty (7. Feb 2007)

Hallo,

nachdem ich nun lange Zeit hier nur mitgelesen habe, muss ich doch mal eine Frage loswerden.

Ich möchte gern einzelen Zellen einer Tabelle in Abhängigkeit des Inhalts unterschiedlich einfärben. Die einzelnen Zellen beinhalten Integer-Werte, so dass die entsprechende Bedingung denkbar einfach ist. Aber wie erkläre ich das der Zelle? Meine EL-Experimente haben bislang noch nicht gefruchtet, bin für Tipps dankbar!

Viele Grüße!
Martin


----------



## André Uhres (7. Feb 2007)

Um welche Art Tabelle geht es?

EDIT: sry für die dumme Frage, hab übersehen, daß es der Beitrag in "Enterprise Java" steht.


----------



## smitty (8. Feb 2007)

Hi,

es handelt sich um eine JSF-Anwendung, ich nutze die Tomahawk Komponenten. Der Code sieht etwa so aus:


```
<t:dataTable id="myData" var="myValue" rows="20"
  styleClass="standardTable" headerClass="standardTable_Header"
  footerClass="standardTable_Header"
  rowClasses="standardTable_Row1,standardTable_Row2"
  columnClasses="standardTable_Column"
  rendered="#{!empty(MyValuesListBackingBean.itemList)}"
  value="#{MyValuesListBackingBean.itemList}">


  <t:column sortable="true">
    <f:facet name="header">
      <t:outputText value="#{bundleMy.myDataHeaderId}"></t:outputText>
    </f:facet>

<% /* Diese Selle soll je nach Wert verschiedene Farben bekommen */ %>
    <t:outputText value="#{myValue.id}"></t:outputText>

    <f:facet name="footer">
    </f:facet>
    </t:column>
```


----------



## smitty (8. Feb 2007)

Kurzer Nachtrag, um mein Vorhaben etwas zu verdeutlichen: mein Ziel könnte etwa so aussehen...

... für die Tabellenzelle:


```
<t:outputText
  value="#{myValue.mywert}"
  style="${(myValue.mywert > 0.5) ? "font-color:green;" : "font-color:red;"}">
</t:outputText>
```


... jedoch bekomme ich dann die Fehlermeldung



> javax.servlet.ServletException: /jsp/myPages/showData.jsp(100,69) The attribute prefix font-color does not correspond to any imported tag library
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)


----------



## smitty (8. Feb 2007)

so, ich hab einen kleinen Workaround fertiggestellt, der mir aber selber nicht so gut gefällt. Falls jemand noch einen bessern Vorschlag hat, würde ich mich freuen!

Die Zelle wird nun mehrfach angegeben, aber durch entsprechende Methoden in der Bean kann jeweils nur ein Wert angezeigt werden.


```
<t:outputText rendered="#{myValue.testTooLow}" value="#{myValue.mywert}" style="color:blue;">
</t:outputText>
<t:outputText rendered="#{myValue.testCorrect}" value="#{myValue.mywert}">
</t:outputText>
<t:outputText rendered="#{myValue.testTooHigh}" value="#{myValue.mywert}" style="color:red;">
</t:outputText>
```

cu!


----------



## Ralf Ueberfuhr (9. Feb 2007)

Warum nutzt du einmal ${} und einmal #{}? Du kannst das Konstrukt ( ? : ) auch für #{} verwenden.


----------

