0

ハイ、

私はJSFの初心者であり、JSFがUIComponentsまたは一般的にセッションで画面を保存する方法について読んだことがあります。いくつかの質問:

  1. たとえば、jsfファイルをリクエストすると、JSFは最初にそれを分析し、レンダラー、バリデーター、コンバーターを使用してメモリ内に画面表現のように作成します.JSFは、このビューからのリクエストを次回より迅速に処理します。バリデーター、コンバーター....、そうですか?

  2. Javaコードを使用したJSFを使用すると、Javaスイングのようにユーザーに表示される画面を変更できますよね?

  3. これらの画面はセッションに保存されますよね?

  4. 私が知らないのは、たとえばユーザーが送信した値でブラウザの戻るボタンを押したときに、JSFがフォームを再作成できるかどうかです。これは可能ですか?

  5. フォーム フィールドの値はモデル Bean に保存されますが、これらの値は別の場所に保存されますか? UIComponent 構造でしょうか?

  6. ユーザーがブラウザーの [戻る] ボタンを押し、フォームで送信した値がリクエスト スコープの Bean に保存された場合、UIComponent にフォームの値を保存しない限り、フォームを再設定できません。構造ですよね?

ありがとう

4

2 に答える 2

0
  1. キャッシングはあると思いますが、私の知る限り、設計や仕様に固有のものではありません。
  2. はい、プレゼンテーションを変更できます。javax、swing、いいえ。
  3. いいえ。
  4. ブラウザが POST を再送信すると、最初に発生したのと同じことが起こります。以前と同じように、フォーム フィールドの値が再送信され、JSF がそれらを処理します。
  5. フォーム フィールドの値は、フォーム フィールドと、EL を介して値として指定された任意のバッキング Bean プロパティにあります。
  6. (4) を参照してください。同じ質問、同じ答え。
于 2014-05-04T23:38:04.037 に答える
0

あなたの主題の質問について:デフォルトでは、はい。コンポーネントが一時的なものとしてマークされていない限り

あなたの質問:

1.) 速さのためではありません。ビューには、必要なコンバーター、バリデーター、および UI と Bean 間の接続に関する情報が保持されているため、ビューの復元が必要です。つまり、EL式です。アクティブなビューがなく、(ViewState を使用して) ポストバック リクエストをトリガーすると、ViewExpiredException が発生します。ViewState なしでリクエストをトリガーすると、新しいビューが生成されます。

2.) 基本的にはい。新しいコンポーネントをツリーに実用的に追加できるという点では、swing に似ています。

3.) デフォルトでは、はい。ただし、独自の StateManager を記述して、必要な場所にビューを保存および取得できます。

4.) 戻るボタン (デフォルト) は、ブラウザの履歴に戻り、キャッシュからページを表示します。ビューが一時的でない場合は、古すぎない限りセッションに保存できます (対応するコンテキスト paramを参照してください)。古いビューからリクエストをトリガーし、そのビューがまだセッションにある場合、それは適切に処理されます。そうしないと、APPLY_REQUEST フェーズで ViewExpiredException がスローされます。

5.) 値は Bean に格納されます。コンポーネントは、Bean の属性を指す EL 式のみを保持します

6.) 4.) および 5.) を参照

于 2014-05-06T15:56:16.173 に答える