2012-01-10 84 views
1

我是jsf的新手,我無法解決此問題。 我在Rich:dataTable裏面有一個OutputText。我想根據它的值更改此OutputText的顏色(這些值是整數)。例如,如果值大於等於50,那麼顏色是紅色,否則顏色是白色。 在此先感謝。更改豐富內的OutputText顏色:dataTable

回答

5

它很容易與CSS完成的,例如:

... 
<h:outputText styleClass="#{row.value gt 50 ? 'red' : 'white'}" value="#{row.value}"/> 
... 

其中類紅色和白色的風格屬性相應或直接定義:

... 
<h:outputText style="color : #{row.value gt 50 ? 'red' : 'white'};" value="#{row.value}"/> 
... 

和更簡單的標記時,彩色/類以Java計算:

... 
<h:outputText styleClass="#{row.volumeTag}" value="#{row.value}"/> 
... 

或在custom EL function

... 
<h:outputText styleClass="#{my:categorize(row.value)}" value="#{row.value}"/> 
... 
+0

沒關係,如果我只有2個條件,但我有4個條件,我想保持xhtml清潔。我寧願一個bean方法做到這一點。 – 2012-01-10 13:39:07

+0

@argonargon添加了另一個選項。這在某種程度上是有問題的,因爲您可能希望避免將顏色與業務邏輯混合。選擇「緊急」/「低音量」等商業有意義的類名可能會更好。 – mrembisz 2012-01-10 13:54:19

+0

對我來說,第三種選擇是更好的(我爲propoerty文件或類添加顏色),但這種方式我必須添加一個方法到行,這是一個「視圖」bean。這個視圖bean的模型取自一個web服務,所以我想避免它。最好的辦法是在後臺bean中使用這個邏輯。 – 2012-01-10 14:03:48