2011-07-14 61 views
0

我在我的網站上有兩個面板。我使用第一個(有一個用戶列表)來選擇一個用戶,他的數據我想在第二個面板上進行更改(我使用AJAX來完成)。當我嘗試更改這些數據併發生驗證錯誤時,由於第二個面板仍顯示以前的UI組件值(它們不再從模型中讀取),因此不可能更改選定的用戶。我如何強制JSF使用模型值刷新UI組件值?JSF - 如何強制UI刷新?

回答

0

您可以用immediate = true標記命令,這樣就可以跳過驗證並完全應用請求值,並使用EL參數更新您的內容。

既然你沒有提供的代碼,我會發明一些: <h:commandLink action="#{userController.showUser(selectedUser)}" immediate="true" value="Show user"/>

如果這是不可能的(例如你使用一個真正的列表,需要提交),只需創建2 <h:form>秒。表單獨立地提交數據,所以他們不會在驗證時踩到彼此的腳趾。

1

大多數A4J組件具有reRender屬性,您提供與您的佈局的部分應刷新ID的列表。

如果您提供了一些代碼,我們可能會提出一些更具體的建議。