2012-03-01 57 views
1

我想將一個在icefaces 1.7.2中的項目遷移到icefaces 2.0.0。但我正面臨綁定問題。因爲整個項目對每個UI組件都使用綁定,並且它在舊版本中使用請求範圍。如果我想遷移它,我需要將請求範圍bean轉換爲視圖範圍bean。如果我這樣做,綁定不起作用,並導致不需要的輸出。ICEfaces 2.0.0 +查看範圍+綁定

所以好心的建議我解決方案,將icefaces 1.7.2項目遷移到icefaces 2.0.0,而無需使用綁定或任何其他方式遷移項目。

而且窗口或會話範圍也沒有用,因爲它爲每個用戶消耗更多的內存空間,同時更多的用戶同時訪問網頁。

+0

爲什麼您需要綁定?在JSF 2.x中,有幾種新的方法,而不需要將組件綁定到bean。相關:['@ ViewScoped'標記處理程序失敗](http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html#ViewScopedFailsInTagHandlers)。 – BalusC 2012-03-01 19:32:46

+0

舊版本的icefaces中使用的所有組件都使用綁定屬性來執行與該組件相關的所有操作.... Ya很容易創建icefaces2.0和jsf2.0 web項目而無需綁定。但是我正在將icefaces1.7.2項目遷移到icefaces 2.0.0項目。可以在jsf2.0和icefaces 2.0.0中創建整個項目。但是它比遷移需要更多的時間。 – tgsankarbabu 2012-03-02 04:14:05

回答

2

在JSF 2.0和2.1中,由於計時問題,組件綁定不能與視圖範圍一起使用。

構建組件樹時會解析綁定,但在構建之後纔會應用視圖狀態之前,視圖範圍不會變爲活動狀態。

JSF 2.2中已經修復了這個問題,但還沒有發佈。如果你感覺冒險,你可以嘗試每晚構建。

+0

我不能得到你的觀點..我需要等到jsf2.2發佈嗎?有沒有其他方式來進行遷移? – tgsankarbabu 2012-03-02 04:16:21

+0

什麼是所有其他方式來創建視圖範圍的bean,而不使用綁定屬性,如使用id來查找組件(findComponent(FacesContext.getCurrentInstance()。getViewRoot(),「componentID」);)?? – tgsankarbabu 2012-03-02 05:03:14

+0

如果要使用視圖範圍和訪問組件,請按Id查找或將組件綁定到單獨的請求範圍的bean。通過編程解析EL或通過請求屬性在視圖中獲取該bean的範圍。 – 2012-03-02 09:53:33

0

或者您可以使用SessionBean ...直到發佈jsf 2.2