2012-01-10 83 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