0

次のようなプロファイル ページの編集/追加を実装しようとしています。

  • アップロード ボタン付きの画像アップロード コンポーネント (Tomahawk t:inputFileUpload)
  • いくつかの入力テキスト フィールド
  • キャンセルして保存ボタン

前述のように、このフォームは新しいプロファイルの追加と既存のプロファイルの編集に使用されます。最初は、テキスト入力用とアップロード コンポーネント用の 2 つの要素を使用しました。これに関する問題は、アップロード コンポーネントが ajax/部分レンダリングをサポートしていないため、ページ全体がリロードされ、テキスト入力の変更が失われることです。統一されたものを使用すると、アップロードボタンが押されたときにテキストフィールドで検証がトリガーされ、ユーザーは画像をアップロードする前に最初にすべての入力を入力する必要があります。

私の望ましい動作は、テキスト入力が変更されていない場合でも、バッキング Bean に変更が適用されて検証されている間に画像をアップロードできることです。変更されていない/空のフィールドの検証は、最後の送信ボタンが押されたときにのみトリガーする必要があります。これはどのように行うことができますか?これに対する標準的なシナリオ/ベスト プラクティスの方法はありますか、それとも valueChange リスナーを実装する必要がありますか? よろしくお願いします!

4

1 に答える 1

0

問題を解決し、カスタムバリデーターを作成し、これを使用してフォームの送信をトリガーしたアクションを確認しました:

 ctx.getExternalContext().getRequestParameterValuesMap().containsKey("form:uploadButton");

ctx は FacesContext の現在のインスタンスです。多分これは誰かを助けるかもしれませんが、それは回避策ですが、仕事はします。

于 2012-08-14T15:20:38.100 に答える