0

私は JSF を学んでおり、JSF 1.2 でカスタム コンポーネントを書き始めています。誰かがJSFの「必須」属性が内部でどのように機能するかを明らかにしてもらえますか? 生成された html を確認しましたが、必要なものは何も表示されません。

複数の入力テキストを含む JSF コンポーネントを作成していますが、それらの一部のみが必要になります (たとえば、最後の入力テキストが常にオプションであるのに対し、最初の入力テキストは xhtml で定義された必須属性によって制御される 2 つの入力テキスト Zipcode コンポーネントを作成します)。 .

このような選択的な「必要な」動作をどのように処理すればよいですか?

4

1 に答える 1

1

コンポーネントの必須属性はサーバー側のみに保存されます。クライアントは、デフォルトでどのフィールドが必須かわかりません。必須フィールドが空のフォームを送信すると、JSF はフィールドをサーバー側モデルと比較し、そこから検証を行い、必須フィールドが空の場合はエラー メッセージを表示します。これは、JSF ライフサイクル (サーバー側でのみ処理される) で確認できます。必須フィールドが空の場合、ライフサイクルはステップ 3 で停止し、モデルの更新をスキップします。

  1. ビューを復元
  2. リクエスト値を適用します。イベントを処理する
  3. 検証を処理します。イベントを処理する
  4. モデル値を更新します。イベントを処理する
  5. アプリケーションを呼び出します。イベントを処理する
  6. レスポンスをレンダリング

2 番目の質問については、入力テキストの数が静的な場合、required="true"一部を に、一部を に設定するだけrequired="#{cc.attrs.required}"です。

于 2012-05-31T07:52:10.557 に答える