1

再会,

我已经上传了一个图像文件并将其存储在 oracle 数据库中。在 Oracle SQL Developer 中,图像数据显示为 "(BLOB)" 。

现在我想从我的数据库中检索一些数据并在 jsp 中显示。以下是我的 actiaon.java 文件代码的一部分:

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

以下是我在 form.java 文件中的部分代码(getter setter 方法):

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. 实现一个给定公司名称的方法(如果有,则首选 id),从数据库加载公司图像并使用适当的 mime 类型将其写入响应输出流(类似于@Guillaume 提到的那个)
  3. 在结果页面(显示公司信息的页面)上生成适当的img元素,并将 src 属性设置为步骤 2 中开发的操作的 url。确保将公司名称(或 id)作为查询字符串参数传递
于 2013-09-19T09:59:21.777 回答