1

私は Wicket 1.5 を使用しており、イメージをロードするために FileUploadField を使用してコンポーネントを構築する必要があります。

画像を選択した後に(フォーム全体を送信せずに)画像のプレビューを作成するには、Ajax の動作が必要です。

Google で検索すると、ファイルを選択すると一致するこのイベントが見つかりました。

AjaxEventBehavior choose = new AjaxEventBehavior("onChange"){
      private static final long serialVersionUID = 1L;
      @Override
      protected void onEvent(AjaxRequestTarget target) {
        Request request = RequestCycle.get().getRequest();
      }
};

私が必要とするのは、必要な小さなパネルに入れる画像のストリームです:

byte[] imgBytes

そして明らかに、DB 格納用の PropertyModel を埋めるために同じストリームが必要です。

ありがとう

4

1 に答える 1

1

AjaxFormSubmitBehavior(指定されたイベントでフォーム全体を送信する) または(1 つのフォーム コンポーネントのみを送信する) のいずれかを使用する必要がありAjaxFormComponentUpdatingBehaviorます。後者がファイルのアップロードで機能するかどうかはわかりません。試してみてください。いつでも使用できます。前の。

FileUploadField のモデルには、FileUpload (のリスト) があります。取得するメソッドを見てください。入力ストリームやその他のものが利用可能であるため、データに対してほとんど何でも実行できます。

于 2012-09-04T13:00:18.767 に答える