1

良い一日、

画像ファイルをアップロードして、Oracle データベースに保存しました。Oracle SQL Developerでは、画像データは "(BLOB)" として表示されます。

ここで、データベースからデータを取得し、jsp で表示したいと考えています。以下は actiaon.java ファイルの私のコードの一部です:

thisForm.setCampaignName(cbo.getCampaignName());
thisForm.setImageDisplay(cbo.getImage());

以下は、form.java ファイル (ゲッター セッター メソッド) のコードの一部です。

private String campaignName = null;

private byte[] imageDisplay = null;

public String getCampaignName() {
    return campaignName;
}

public void setCampaignName(String campaignName) {
    this.campaignName = campaignName;
} 

public byte[] getImageDisplay() {
    return imageDisplay;
}

public void setImageDisplay(byte[] imageDisplay) {
    this.imageDisplay = imageDisplay;
}

そして、以下は私のjspファイルのコードの一部です:

<td class="value"><html:text property="campaignName" size="50" maxlength="50" /></td>

<td class="value"><bean:write name="campaignListingForm" property="imageDisplay" /></td>

campaignName私が入力してOracleデータベースに保存したものと同じように、ブラウザに正しく表示されました。ただし、画像が正しく表示されません。ブラウザに単語を
表示するだけです。[B@5df25df2

JSPを使用して画像を表示するのは間違っていると思います。

親切なアドバイス。

4

1 に答える 1

0

画像はバイナリデータです。ページに直接表示することはできません。ページに IMG タグがあり、そのsrc属性が struts アクションの別のメソッドに設定されている必要があります。このメソッドは、画像 ID (src プロパティの画像 URL の末尾に追加) を取得し、指定された画像を取得して、適切な MIME/タイプを使用するクライアント。したがって、シーケンスは次のようになります。

  1. データベースからデータ(会社情報)を取得します
  2. DB から会社のイメージをロードし、適切な MIME タイプ (@Guillaume で言及されているようなもの) で応答出力ストリームに書き出す、会社名 (ID がある場合は ID が望ましい) を指定するメソッドを実装します。
  3. 結果ページ (会社情報を表示するページ) に適切なimg要素を生成し、 src プロパティをステップ 2 で作成したアクションの URL に設定します。会社名 (または ID) をクエリ文字列パラメーターとして渡すようにしてください。
于 2013-09-19T09:59:21.777 に答える