JSF/RichFaces:条件文本样式

vol*_*vox 13 java jsf richfaces

我有一个可以是yes或no的字符串,在Java辅助bean的对象中实例化.我似乎无法找到有条件地将文本设置为红色或绿色的最佳方式,这取决于JSF是否分别从bean获得yes或no.我正在使用richfaces,但我应该使用<c:if>标签吗?

Boz*_*zho 23

(按优先顺序排列):

  • style="color: #{yourVar == 'yes' ? 'green' : 'red'};"
  • 制作两个<h:outputText>具有不同风格的组件,每个组件具有不同的rendered属性(一个#{yourVar == 'yes'}和另一个#{yourVar == 'no'})
  • 定义一个(jstl/facelets/jsf 2.0)函数,它将var作为参数并返回一个样式/类 - styleClass="#{my:getStyleClass(yourVar)}"

  • @Luke,恕我直言,这只是豆子里的混乱.它不需要知道有关视图特定内容的任何信息.`style`或`styleClass`(Bozho选项1)中的EL三元条件在这里非常有意义. (5认同)
  • 恕我直言,更好的是一个返回类名或空字符串的方法,所以:<input type = text class ="#{bean.className}"/> (2认同)