私はCore JavaServer Faces 3rd editionを読んでおり、JSFページのエンコーディングとデコードについて質問があります。JSFページのエンコーディングとデコード
ページがレンダリングされると、まずJSFタグを含むXHTMLページが表示されます。各JSFタグには独自のタグ・ハンドラ・クラスがあり、それらのコンポーネントは連携してそのページのコンポーネント・ツリーを作成します。その他のタグはすべて無視されます。
各コンポーネントには、HTMLの生成方法を知っている独自のレンダラーがあります。今や本は言う:
(これは、Hである:のinputTextタグ)
各コンポーネントは、コンポーネントの状態を反映して、HTML出力を生成するレンダラを有します。 UIInputオブジェクトのレンダラーはJSF実装にユニークなIDと式user.nameの現在の値を検索するように要求します。
質問です:
はなぜ本は、実装が表現user.name
の現在の値を要求することを言いますか?実装では代わりにコンポーネント(この場合はUIInput
)にこのユーザーBeanへの参照があると尋ねられました。なぜなら、そのクラスはJSFタグをコードに「反映」していないからです。
私はおそらくこのコンセプトを誤解しており、私はそれを学びたいと思います。 JSFコンポーネントに渡さ
Okey、ちょっと追加の質問:デコードの面は、ApplyRequestVariablesライフサイクルの段階で、RenderResponseのエンコードではどうなりますか? – LuckyLuke
はい。 _Apply Request Values_の間、 'Renderer.decode'は入力(通常はパラメータマップから)を読み込み、コンポーネントの' setSubmittedValue(Object) 'を呼び出します。 'Renderer.encode *(...)'メソッドは、_Render Response_の間に 'ResponseWriter'を介してマークアップを発行するために呼び出されます。 – McDowell