我正在使用JSF并且每个示例“qwerty”都有一个输出文本,如果满足某些条件,我希望以不同方式显示/格式化。 因此,每个例子如果:
等等。
有办法吗?
答案 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'}" />