2012-03-06 83 views
0

是否在下面的示例中評估了EL#{myBean.property}?如果是的話,這意味着頁面上的所有EL都會被評估,而不管其「渲染」(或其他)屬性的值如何?在非呈現的JSF元素中的EL評估

<h:panelGroup rendered="false"> 
    <h:outputText value="#{myBean.property}" /> 
</h:panelGroup> 

回答

2

是EL#{myBean.property}下面的例子中進行評價?

不可以。您也可以通過在getter方法上放置一個調試斷點來輕鬆回答它。


如果是的話,那意味着頁面上的所有委託貸款進行評估,不管他們的「渲染」(或任何其他)屬性的值?

,基本上取決於組件是如何精心設計的。標準的JSF組件不會那樣做,但是如果它是例如自定義組件在processXxx方法內部不檢查isRendered()方法,然後繼續處理它自己和孩子,那麼可以評估所有孩子的EL。

+0

謝謝。它是關於標準的JSF組件。其實,我有一個更復雜的例子。簡而言之,我試圖推遲創建myBean,直到呈現通過EL引用myBean的組件之一。 – stasam 2012-03-06 15:19:53

+0

我嘗試了一個簡單的例子,就像上面的例子。 EL評估。註釋?順便說一句。我正在使用JBoss AS 5.1附帶的JSF 1.2實現,如果這可能會有所作爲。 – stasam 2012-03-06 15:57:45

+0

「like」?所以這不完全是給定的例子?你使用'rendered =「#{bean.someCondition}」'?顯然,這種情況在某個時候評估爲「真」。再次,只需運行調試器。 – BalusC 2012-03-06 16:24:13