Mojarra 2.1。即使渲染屬性爲false,組件仍然會以組件樹結尾
我檢查了類com.sun.faces.lifecycle.RestoreViewPhase
中的方法public void execute(FacesContext facesContext) throws FacesException
。現在,一旦通過調用viewRoot = viewHandler.restoreView(facesContext, viewId);
恢復了視圖,我們就可以從先前的請求中獲得優勢樹(如果它是回發)。
我檢查樹(通過組件在調試器的children
屬性中手動迭代),並發現該複合材料組件,聲明如下:
<h:panelGroup rendered="#{bean.id == 1}">
<utils:dropDownListFilterItem />
</h:panelGroup>
<h:panelGroup rendered="#{bean.id == 2}">
<utils:dateFilterItem />
</h:panelGroup>
<h:panelGroup rendered="#{bean.id == 3}">
<utils:fieldFilterItem />
</h:panelGroup>
都在該樹。儘管事實上#{bean.id}
被評估爲2,但它感到很高興。我指出,唯一的<utils:dateFilterItem />
實例將在樹中。
所以,我的問題是如何處理Mojarra rendered
屬性?該屬性是否影響了唯一的渲染響應階段?
另一個相關的問題:http://stackoverflow.com/q/18768527 – BalusC