2010-02-08 11 views
13

Mam ciąg znaków, który może być tak lub nie, utworzony w obiekcie w komponencie Java bean. Nie mogę znaleźć najlepszego sposobu warunkowego stylu tekstu czerwonego lub zielonego w zależności od tego, czy JSF otrzymuje odpowiednio odpowiedź "tak" czy "nie" z komponentu bean. Korzystam z richfaces, ale czy powinienem używać tagów <c:if>?JSF/RichFaces: warunkowa stylizacja tekstu

Odpowiedz

23

(w następującej kolejności):

  • style="color: #{yourVar == 'yes' ? 'green' : 'red'};"
  • dokonać dwóch <h:outputText> składniki o różnych stylów, każdy z inną rendered atrybutu (jedna #{yourVar == 'yes'} a drugi #{yourVar == 'no'})
  • zdefiniować (JSTL/facelets/jsf 2.0), która przyjmuje zmienną jako argument i zwraca styl/klasę - styleClass="#{my:getStyleClass(yourVar)}"
+2

IMHO, lepiej jest metodą, która zwraca nazwę klasy lub pusty łańcuch, tak: Luke

+5

@Luke, IMHO to tylko więcej bałaganu w ziarnie. Nie musi nic wiedzieć na temat konkretnych widoków. Ternary EL w stylu "style" lub "styleClass" (opcja 1 od Bozho) ma tu sens. – BalusC