2011-12-30 32 views
1

我有由網格和一些細節的字段的JSF形式。詳細信息字段包含網格中第一行的數據。我有一個支持bean,它監聽網格行選擇並更新詳細字段的支持bean來表示新的值。這裏談到的問題:我更新的詳細信息字段根據需要(聽衆在ApplyRequestValuesPhase調用),但後來JSF框架reassings舊值,將其在UpdateModelValuesPhase如何在UpdateModelValuesPhase之前修改JSF支持bean的值?

我的問題是如何解決的呢?我如何從網格選擇更改事件中爲一些JSF組件分配新值?

注:這是關於非常同樣的事情,在JSF component doesn't update if changes came from grid click,但我更清楚地看到,現在的問題,我認爲,這就是爲什麼我發佈了一個新的問題。

+1

我不做ICEfaces的,但首先它的怪異聽者的過程中調用應用請求值階段,而不是調用行動階段(作爲一個正常的動作偵聽器)。您可能需要考慮在正確的階段調用監聽器。 – BalusC 2011-12-30 14:13:43

+1

這是因爲'RowSelection'是'immediate',根據http://www.icefaces.org/docs/v1_8_1/tld/ice/rowSelector.html – jabal 2011-12-30 14:18:44

+0

OMG,感謝BalusC!將其設置爲不立即解決問題。你能否回答這個問題(兩者),以便我能接受你的幫助? – jabal 2011-12-30 14:21:32

回答

1

這是不正常的監聽器被調用時應用請求值階段。也許你已經在某個地方設置了immediate="true",這會導致在應用請求值階段執行操作。您需要確保在更新模型值階段之後運行的調用操作階段期間調用偵聽器。設置爲immediate="false"或者完全刪除該屬性,這是默認行爲。

根據評論,你似乎確實設置了immediate="true"row selector,你需要刪除它。