我正在使用JSF,并且每个示例“qwerty”都有一个输出文本,如果符合某些条件,我想要显示/格式不同。 所以每举例来说,如果:JSF outputtext条件显示/样式。取决于条件
- COND1为真,那么我想显示
QWERTY - COND1为假的话,我想显示 QWERTY
等。
有没有办法?
我正在使用JSF,并且每个示例“qwerty”都有一个输出文本,如果符合某些条件,我想要显示/格式不同。 所以每举例来说,如果:JSF outputtext条件显示/样式。取决于条件
等。
有没有办法?
您可以依次用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
整洁的方法是创建CSS类
<h:outputText value="qwerty"
styleClass="#{backingBean.cond1 ? 'classA' : 'classB'}" />
谢谢!这看起来不错! – CyberGriZzly 2013-03-13 21:19:24
在类似的情况下,我用以下
<h:outputText value="yourValueFromYourBeanOrWhatever" styleClass="anArbitraryName#{managedBean.condition}"/>
而在我的CSS文件,我定义的类:
.anArbitraryNametrue{}
and
.anArbitraryNamefalse{}
与条件。在审讯之前,你把条件。如果为true,则返回t之前的内容:“”。如果它为假,则返回“:”后面的内容。
<h:outputText value="#{condition ? 'true' : 'false'}" />
我想到了,但我认为这是一个更好的更优雅的方式。谢谢您的回答! – CyberGriZzly 2013-03-13 21:16:38
这不是最优雅的方式。您实际上在组件树中创建了两个组件。同时保留[DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)! – 2013-03-13 21:18:06
这仅仅是一个给出关于条件渲染评估如何在JSF中工作的基本解释的方法。我的第二种方法更好;-) – 2013-03-13 21:23:15