JSF outputtext条件显示/样式.根据条件不同

Cyb*_*zly 7 jsf conditional rendering

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

  • cond1是真的然后我想显示 QWERTY
  • cond1是假的然后我想显示qwerty

等等.

有办法吗?

Xtr*_*ica 15

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

<h:outputText value="qwerty" 
    style="#{backingBean.cond1 ? 'text-decoration:line-through;':'fontstyle:italic;'}">
Run Code Online (Sandbox Code Playgroud)

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

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


Pio*_*zda 7

整洁的方法是创建CSS类

<h:outputText value="qwerty" 
     styleClass="#{backingBean.cond1 ? 'classA' : 'classB'}" /> 
Run Code Online (Sandbox Code Playgroud)


Laa*_*ssi 6

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

<h:outputText value="yourValueFromYourBeanOrWhatever" styleClass="anArbitraryName#{managedBean.condition}"/>
Run Code Online (Sandbox Code Playgroud)

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

.anArbitraryNametrue{}
Run Code Online (Sandbox Code Playgroud)

.anArbitraryNamefalse{}
Run Code Online (Sandbox Code Playgroud)