JSF / RichFaces: условное оформление текста

У меня есть строка, которая может иметь значение «да» или «нет», созданная в объекте в компоненте поддержки Java. Кажется, я не могу найти лучший способ условно стилизовать текст в красном или зеленом цвете в зависимости от того, получает ли JSF да или нет от bean-компонента соответственно. Я использую richfaces, но следует ли мне использовать теги <c:if>?


person volvox    schedule 08.02.2010    source источник


Ответы (1)


(в порядке предпочтения):

  • style="color: #{yourVar == 'yes' ? 'green' : 'red'};"
  • создать два <h:outputText> компонента с разными стилями, каждый со своим атрибутом rendered (один #{yourVar == 'yes'}, а другой #{yourVar == 'no'})
  • определить функцию (jstl / facelets / jsf 2.0), которая принимает переменную в качестве аргумента и возвращает стиль / класс - styleClass="#{my:getStyleClass(yourVar)}"
person Bozho    schedule 08.02.2010
comment
IMHO, лучше - это метод, который возвращает имя класса или пустую строку так: ‹input type = text class = # {bean.className} /› - person Luke; 08.02.2010
comment
@Luke, ИМХО, вот только в бобе хлама побольше. Ему не нужно ничего знать о вещах, связанных с просмотром. Тернарное условие EL в style или styleClass (вариант 1 от Bozho) имеет здесь смысл. - person BalusC; 08.02.2010