0
我有動態使用JSF 2 - 動態添加組件的ID不保留在回發
UIComponent c = new UICustomComponent();
c.setId("someIdGeneratedDynamically");
facet.getChildren().add(c);
但在回傳中,我添加組件的組件內的面,當我遍歷這個名單,我才知道組件存在,但它們的id與我之前指定的不同。 (更具體地說,這些ID的形式是「j_id9,j_id10」等)
我調試了StateManagementStrategyImpl中的一段代碼,並意識到它們在保存視圖時故意不存儲組件ID。
我的問題是,爲什麼JSF不存儲組件ID?
恩,不完全。動態添加的組件保存了其客戶ID。請參閱'StateManagementStrategyImpl'中的'ComponentStruct'。我的問題是關於組件ID而不是客戶端ID。 – Nerrve 2012-02-28 14:25:54
這正是我寫的:動態添加的組件使用單獨的狀態管理機制,但我理解你的問題涉及到一般機制。客戶端ID是組件ID的衍生產品。 – mrembisz 2012-02-28 14:40:40
無論組件ID或客戶端ID如何,它們都不會保留在組件實例的下一個請求上。客戶端ID只是用於恢復狀態(作爲地圖中的一個鍵),但這可能是它唯一使用的。 – Nerrve 2012-02-28 14:54:47