9

属性 id、desc、および imageByteArray を持つフォーム Bean があります。Struts アクションが実行され、id、desc などのこれらの Bean 属性にアクセスし、imageByteArray を変換して画像として表示する JSP にリダイレクトされます。この投稿を試しましたが、うまくいきません。

Base64 を使用して bytearray をエンコードします。ここで、this.bean.imageByteArray はフォーム Bean を参照します。

this.bean.setImageByteArray(new org.apache.commons.codec.binary.Base64().encode(imageInByteArr));

私はこれを試しましたが、動作しません

<img src="data:image/jpg;base64,<c:out value='${bean.imageByteArray}'/>" />

バイト配列 (byte[] imageByteArray) は base64 でエンコードされた JPG 画像を参照し、出力として次の img タグを取得していますが、明らかに何も表示されません。

<img src="data:image/jpg;base64,[B@2e200e">

JSPでbase64バイト配列を変換して画像として表示する方法はありますか?

4

2 に答える 2

12

得られるのは、配列の toString 出力だけです。ただし、文字列に変換されたバイト配列が必要です。

Bean でメソッドを作成する必要があります


public String getByteArrayString()
{
   return new String(this.imageByteArray);
}

これを JSP で参照します。

技術的には、base64 バイトの配列に使用するエンコードを定義する必要がありますが、すべての文字が標準の 7 ビット ASCII 範囲にあるため、これは必要ありません。

于 2012-05-09T06:08:03.070 に答える