struts2 显示图片

好久没做struts2,基本全忘光了。

今天碰到个以前没做过的东西,记录一下。

jsp页面上 <img src="showimage.action"> 这种方式来显示图片

配置文件如下:

<action name="showimage"
class="ImageTestAction" method="getImage">
<result name="success" type="stream">
<param name="contentType">image/png</param>
<param name="inputName">imageStream</param>
</result>
</action>

直接写<action name="showimage" class="ImageTestAction" method="getImage"></action>也行,不过在action中需要output.write显式的输出数据流,代码不是很友好。

action代码,配置result的方法

try {
ByteArrayOutputStream output = new ByteArrayOutputStream();
BufferedImage image = ImageIO.read(new File("c:\\1.png"));
ImageIO.write(image, "png", output);
this.imageStream = new ByteArrayInputStream(output.toByteArray());
return SUCCESS;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "fail";
}


action代码,不配置result的方法

try {
OutputStream out = response.getOutputStream();
BufferedImage image = ImageIO.read(new File("c:\\1.png"));
ByteArrayOutputStream imageout = new ByteArrayOutputStream();
boolean flag = ImageIO.write(image, "png", imageout);
byte[] imgData = imageout.toByteArray();
if(imgData != null){
out.write(imgData);
}
return null;
} catch (Exception e) {
e.printStackTrace();
return "fail";
}


以前写img都是用文件系统,这次直接写到数据库里,还真是没这么搞过,小记一笔。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值