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

时间:2013-03-13 21:06:17

标签: jsf rendering conditional

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

  • cond1为true然后我要显示 qwerty
  • cond1为false然后我要显示 qwerty

等等。

有办法吗?

4 个答案:

答案 0 :(得分:13)

您可以使用ternary operator来根据条件选择要应用的样式:

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

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

也可以在EL中使用内联'条件',请参阅using greater than logical expression in rendered attribute。另请阅读discussion about using inline in the xhtml or in the javabean

答案 1 :(得分:7)

巧妙的方法是创建CSS类

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

答案 2 :(得分:7)

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

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

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

.anArbitraryNametrue{}

.anArbitraryNamefalse{}

答案 3 :(得分:0)

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

<h:outputText value="#{condition ? 'true' : 'false'}" />