JFS の Facelets ページの UI コンポと、その入力値を格納するバッキング Bean があった時、UI コンポへの入力値がいつバッキング Bean に反映されるのか分からなかったので、ちょっと調べてみた。
当初は、Facelets ページでのポストバック (メソッド呼び出し) のタイミングかと思っていたのだが、技術書を読んでいたら、それでは説明できないサンプルコードが見つかった。そのコードでは、ポストバックのメソッドの呼び出し時点で、バッキング Bean に入力値が格納されている前提になっていた。
なので、今はユーザがその UI コンポに入力した時点でデータが非同期にバッキング Bean に送られて反映されると考えている。で、ポストバックのメソッドの呼び出されたら、バッキング Bean に (非同期に) 格納済みの値をポストバックのメソッドから使用できるという仕組みかと。もしくは、ポストバックのタイミングで UI コンポに入力した値が裏でバッキング Bean に送られるとか。何となく、前者の方が正しいと推測している。
あと、以上の仮設が正しい場合、バッキング Bean がコンテナにより生成されるのは、Facelets ページが表示された時になると思われる。そうでないと、ユーザの入力値をバッキング Bean に送信できないので。
時間を見つけて、実機検証したみたいところ。