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 - 需要量:
我想初始化建設頁面樹模型,雖然我仍然在頁面上的樹模型並沒有被再次初始化,直到我做以編程方式。
功能需求並不完全清楚,但您聽起來像是想在bean的(後期)構建期間構建模型,而不是每次渲染視圖之前。 – BalusC
問題已更新,我希望現在清楚。 –