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