技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

JFSのFaceletsページとバッキングBeanとの同期のタイミング

JFS の Facelets ページの UI コンポと、その入力値を格納するバッキング Bean があった時、UI コンポへの入力値がいつバッキング Bean に反映されるのか分からなかったので、ちょっと調べてみた。

当初は、Facelets ページでのポストバック (メソッド呼び出し) のタイミングかと思っていたのだが、技術書を読んでいたら、それでは説明できないサンプルコードが見つかった。そのコードでは、ポストバックのメソッドの呼び出し時点で、バッキング Bean に入力値が格納されている前提になっていた。

なので、今はユーザがその UI コンポに入力した時点でデータが非同期にバッキング Bean に送られて反映されると考えている。で、ポストバックのメソッドの呼び出されたら、バッキング Bean に (非同期に) 格納済みの値をポストバックのメソッドから使用できるという仕組みかと。もしくは、ポストバックのタイミングで UI コンポに入力した値が裏でバッキング Bean に送られるとか。何となく、前者の方が正しいと推測している。

あと、以上の仮設が正しい場合、バッキング Bean がコンテナにより生成されるのは、Facelets ページが表示された時になると思われる。そうでないと、ユーザの入力値をバッキング Bean に送信できないので。

時間を見つけて、実機検証したみたいところ。