2013-03-13 4 views
6

Я использую JSF, и у меня есть выходной текст в примере «qwerty», который я хочу отображать/форматировать по-разному, если будут выполнены некоторые условия. Так на пример, если:JSF выходной текст условный дисплей/стиль. В отличие от условия

  • cond1 верно, то я хочу, чтобы отобразить QWERTY
  • cond1 является ложным, то я хочу, чтобы отобразить Qwerty

и так далее.

Есть ли способ?

ответ

12

Вы можете использовать ternary operator для того, чтобы выбрать стиль, который вы хотите применить в зависимости от состояния:

<h:outputText value="qwerty" 
    style="#{backingBean.cond1 ? 'text-decoration:line-through;':'fontstyle:italic;'}"> 

И было бы еще лучше, если вы используете классы CSS в порядке встроенных стилей. Удачи!

Использование «условия» inline в EL также возможно, см. using greater than logical expression in rendered attribute. Читайте также discussion about using inline in the xhtml or in the javabean

+0

Я подумал об этом, но я подумал, что это лучший более элегантный способ. Спасибо за ваш ответ! – CyberGriZzly

+0

Это не самый элегантный способ. Фактически вы создаете два компонента в дереве компонентов. Также сохраняйте [DRY] (http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)! –

+0

Это просто способ дать основное объяснение того, как в JSF работает условная рендеринг-оценка. Мой второй подход лучше ;-) –

6

Аккуратный способ для создания классов CSS

<h:outputText value="qwerty" 
    styleClass="#{backingBean.cond1 ? 'classA' : 'classB'}" /> 
+0

Спасибо! Это выглядит красиво! – CyberGriZzly

7

В подобных ситуациях, я использую следующие

<h:outputText value="yourValueFromYourBeanOrWhatever" styleClass="anArbitraryName#{managedBean.condition}"/> 

И в моем файле CSS я определяю классы:

.anArbitraryNametrue{} 

и

.anArbitraryNamefalse{} 
0

С условным обозначением. Перед допросом вы ставите условие. Если true, он возвращает то, что есть до t ":". Если он неверен, он возвращает то, что находится за «:».

<h:outputText value="#{condition ? 'true' : 'false'}" /> 
Смежные вопросы