1

私はAbstractCellを持つCellListを持っています。友達リストと同じように、レコードごとにいくつかのテキスト フィールドと 1 つの写真があり、誰もが自分の写真を持っています。GWT ショーケースでは、CellList サンプルが AbstractImagePrototype.create(imageResource) ですべての人に 1 つの写真を提供します。これは実際のケースではありません。これらの写真を GWT で表示するにはどうすればよいですか?

ClientBundle で 1 晩試してみましたが、1 つのメイン パネルに 1 つの静止画のような結果しか得られませんでした。また、これらの画像を MySql の Blob 列またはファイル システムのどこに配置すればよいかわかりません。GWT 側またはサーバー側で何か提案をいただけますか? どうもありがとう。

ちょうど今、誰かがこれらの写真を提供するためにサーバー側でサーブレットを提案しているのを見ました。ただし、別のサーバー アクセスが発生するため、別のアクセス許可チェックを実行する必要があります。これらの画像をCellListのテキストデータと一緒にダウンロードして一緒にブラウザで表示することはできますか? ありがとう。

2.5rc では、AbstractCell は ui.xml を使用して UiRender と連携できます。ui.xml で問題なく動作する場合、それが最適なソリューションになります。

4

1 に答える 1

1

それは、各ユーザーの写真をGWTアプリにどのように送信するかによって異なります。
ClientBundleコンパイル時にリソースを定義するため、これは適切ではありません。ユーザーのアバター画像は非常に動的であると思います(つまり、新しいユーザー、ユーザーが画像を変更するなど)。

したがって、2つの解決策があります。

  1. 実際の画像コンテンツ(base64でエンコード)を、自分の背後にあるフィールドに追加し、その場でDTO画像を作成するCellList方法renderを使用します。AbstractCell
  2. のフィールドに画像のURLを追加し、のDTOメソッドrenderで、または対応するURLを使用してまたはをAbstractCell作成できます。Image<a href=

解決策2は、画像ごとに個別のHTTPリクエストを作成します。解決策1は行いませんが、クライアントに送信するデータの量は増加します。

保管について:

ユーザーレコードを削除すると画像も自動的に削除されるため、データベースにblobフィールドとして保存する方が簡単です。ただし、データベースのサイズは大きくなり、それは常にバックアップの問題になります。

于 2012-08-14T07:33:46.567 に答える