上に保持されていない私は、動的に私はこのリストを反復処理するとき、私はその実現、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
それはまさに私が書いたことです:動的に追加されたコンポーネントは状態管理のために別々のメカニズムを使いますが、私はあなたの質問が一般的なメカニズムに関係していると理解しました。クライアントIDはコンポーネントIDの派生物です。 – mrembisz
は、コンポーネントIDまたはクライアントIDに関係なく、コンポーネントインスタンスの次の要求では保持されません。クライアントIDは(マップのキーとして)状態を復元するためだけに使用されますが、おそらくそれが使用されている唯一のものです。 – Nerrve