我正在使用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