2010-02-08 6 views
13

J'ai une chaîne qui peut être oui ou non, instanciée dans un objet dans un bean backing Java. Je n'arrive pas à trouver le meilleur moyen de conditionner le texte en rouge ou en vert selon que le JSF obtient oui ou non du bean respectivement. J'utilise richfaces, mais devrais-je utiliser <c:if> tags?JSF/RichFaces: style de texte conditionnel

Répondre

23

(dans l'ordre de préférence):

  • style="color: #{yourVar == 'yes' ? 'green' : 'red'};"
  • faire deux <h:outputText> composants avec des styles différents, chacun avec un attribut rendered différent (une #{yourVar == 'yes'} et l'autre #{yourVar == 'no'})
  • définissent un (jstl/facelets/jsf 2.0) fonction qui prend le var en argument et renvoie un style/classe - styleClass="#{my:getStyleClass(yourVar)}"
+2

À mon humble avis, mieux est une méthode qui renvoie le nom de la classe ou la chaîne vide: Luke

+5

@Luke, à mon humble avis que plus d'encombrement dans le bean. Il n'a pas besoin de savoir quoi que ce soit sur les trucs spécifiques à la vue. Une condition ternaire EL dans 'style' ou' styleClass' (option 1 de Bozho) est parfaitement logique ici. – BalusC