7

我正在使用 JSF,并且每个示例“qwerty”都有一个输出文本,如果满足某些条件,我想以不同的方式显示/格式化。因此,例如,如果:

  • cond1 为真,那么我想显示qwerty
  • cond1 为假,那么我想显示qwerty

等等。

有办法吗?

4

4 回答 4

16

您可以使用三元运算符来根据条件选择要应用的样式:

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

如果您按照内联样式的顺序使用 css 类会更好。祝你好运!

在 EL 中使用“条件”内联也是可能的,请参阅在渲染属性中使用大于逻辑表达式。另请阅读有关在 xhtml 或 javabean 中使用内联的讨论

于 2013-03-13T21:13:25.573 回答
7

整洁的方法是创建 CSS 类

<h:outputText value="qwerty" 
     styleClass="#{backingBean.cond1 ? 'classA' : 'classB'}" /> 
于 2013-03-13T21:15:41.137 回答
6

在类似的情况下,我使用以下

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

在我的 CSS 文件中,我定义了类:

.anArbitraryNametrue{}

.anArbitraryNamefalse{}
于 2013-03-13T21:16:01.277 回答
0

有条件的。在审讯之前你提出条件。如果为真,则返回 t ":" 之前的内容。如果为假,则返回“:”后面的内容。

<h:outputText value="#{condition ? 'true' : 'false'}" />
于 2017-12-12T15:02:36.080 回答