2
如果滿足某些條件,我經常想爲組件聲明條件CSS樣式類。如果條件不符合,則不應添加樣式。我平時做這樣的(這一直很好至今):在EL條件表達式中指定空結果的首選方法是什麼?
<some:tag styleClass="#{someCondition ? 'SomeClass' : null}" />
這是正確的,還是有什麼危險的陷阱,以具有null
呢?
如果滿足某些條件,我經常想爲組件聲明條件CSS樣式類。如果條件不符合,則不應添加樣式。我平時做這樣的(這一直很好至今):在EL條件表達式中指定空結果的首選方法是什麼?
<some:tag styleClass="#{someCondition ? 'SomeClass' : null}" />
這是正確的,還是有什麼危險的陷阱,以具有null
呢?
沒有危險的陷阱。 #{null}
是完全正確的,因爲EL不會向響應發出任何東西(它基本上評估爲空字符串)。
也有時會看到這種風格:
<some:tag styleClass="#{someCondition ? 'SomeClass' : ''}" />
這是通常在普通的Java代碼中使用如下的樣式:
System.out.println(someCondition ? "SomeClass" : "");
在普通的Java代碼轉換null
到String
會導致在"null"
中,而不是""
,這可能是不希望的。對於那些不太熟悉EL的人來說,上面的風格實際上是更加自我記錄的。否則,你會得到像這樣的問題不是打印出「null」嗎?