2011-11-23 46 views
0

首先,我的bean不是由JSF管理,而是使用自定義視圖範圍,如this article中所述。所以如果這個行爲對於普通的JSF2來說很奇怪,並且可能與Spring有關,請告訴我。執行操作後,將範圍重置字段視爲默認值

豆:

public class DepartmentBean { 

    private DefaultTreeModel model; 

    public void preRender(ComponentSystemEvent event) throws Exception { 
     if (model == null) { 
      model = myService.buildModel(); 
     } 
    } 

    public String clear() { 
     // resetting stuff 
     return "pretty:"; 
    } 

} 

查看:

<h:form> 
    <ice:panelGroup styleClass="crud-links"> 
     <h:commandLink value="Delete" action="#{department.deleteDepartment}" />   
    </ice:panelGroup> 
</h:form> 
<h:form> 
    <ice:panelGroup> 
     <ice:tree id="tree" value="#{department.model}" var="item" hideRootNode="false" hideNavigation="false" imageDir="./xmlhttp/css/xp/css-images/"> 
      <ice:treeNode> 
       <f:facet name="content"> 
        <ice:panelGroup style="display: inline"> 
         <ice:commandLink value="#{item.userObject.text}"></ice:commandLink> 
        </ice:panelGroup> 
       </f:facet> 
      </ice:treeNode> 
     </ice:tree> 
    </ice:panelGroup> 
</h:form> 

當頁面加載首次model對象中填充了數據,但點擊刪除按鈕時,我注意到,在清除preRender()方法執行並且模型(在清除之前填充的模型變爲空,並且再次填充,儘管我處於同一頁面中,並且應該保持該值)

代碼是否有導致此類行爲的問題,或者這是正常行爲? 如果問題可能與Spring或自定義視圖範圍或IceFaces有關,請告知。

UPDATE - 需要量

我想初始化建設頁面樹模型,雖然我仍然在頁面上的樹模型並沒有被再次初始化,直到我做以編程方式。

+0

功能需求並不完全清楚,但您聽起來像是想在bean的(後期)構建期間構建模型,而不是每次渲染視圖之前。 – BalusC

+0

問題已更新,我希望現在清楚。 –

回答

0

哦,我的錯誤,初始化應該在@PostConstruct裏面。

相關問題