本來我的例子是用Struts2+Hibernate+Spring三個框架搭建的,但是沒有什麼大礙,我們只有知道核心部分在怎麼實現的就行。
以下是我的Action的代碼:
private static Image image = new Image();
public Image getImage() {
return image;
}
public void setImage(Image image) {
this.image = image;
}
//imageDao對象我是Spring注入進來的,你可以用new創建
byte[] itemImage = null;
HttpServletResponse response = ServletActionContext.getResponse();
response.reset();
response.setContentType("image/jpeg");
try {
image.setId(0);
itemImage = imageDao.getImage(image).getBytes(1, (int)imageDao.getImage(image).length()); //通過getBytes()方法將獲取的Blob類型數據轉換
OutputStream out = response.getOutputStream();
out.write(itemImage);
out.flush();
out.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
以下是ImageDAO的method
public Blob getImage(Image image) {
Image img = (Image) template.get(Image.class, image.getId()); //按指定id獲取的image對象
Blob blob = img.getImage();
return blob; //return blob 對象
}
JSP的代碼爲:
<img src="<s:url value="show" />" border="0" width="100" height="100">