当前位置:编程学习 > JAVA >>

求struts2显示多张二进制图片的action或JSP显示多张二进制图片


struts2的显示多张数据库的二进制代码,求action代码!
下面是我写的,strut2的
前台代码:
<s:iterator value="#session.cpList" id="cpList">
<tr>
<td align="left">
<div>
<img src="ziliao/ziliao_show.action?chanpin.id=<s:property value="#cpList.id"/>" style="width: 160px;height: 120px; float: left;margin: 10px;border: 1px solid #eeeeee;" alt="暂无图片">
    <p class="wenzi-biaoti-red"><a href="chanpin/chanpin_xianshi.action?chanpin.id=<s:property value="#cpList.id" />" style="color: #f2392b;"><s:property value="#cpList.chanpinmingcheng" /> </a>
</p><p><s:property value="#cpList.chanpingongneng" escapeHtml="false" />
</p>
</div> <br />
</td>
</tr>
</s:iterator>
后台对应action:
public String show() throws Exception {

InputStream is = null;
response.reset();
response.resetBuffer();
response.setContentType("image/pjpeg");
OutputStream os = response.getOutputStream();
is = new ByteArrayInputStream(ziliaoService.findZiliaoByCpid(
chanpin.getId()).getShuju());
byte b[] = new byte[is.available()];
int n = is.read(b);
while (n != -1) {
os.write(b, 0, n);

}
os.flush();
os.close();
return null;
}
jsp显示页面如下:

jsp图片显示不正确。
jsp页面循环显示多张数据的二进制图片,求JSP页面代码!!
我写的jsp代码:
<body>
<%
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=tk_wangzhan";
String user = "sa";
String password = "123,abc";
String sql = "select * from tk_ziliao where chanpin_id=12";
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
try {

DriverManager
.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
conn = DriverManager.getConnection(url, user, password);
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
InputStream in = null;
if (rs.next()) {

in = rs.getBinaryStream("shuju");
response.setContentType("image/jpeg");
ServletOutputStream sout = response.getOutputStream();
byte[] b = new byte[in.available()];
int len = in.read(b);
while (len != -1) {
sout.write(b, 0, len);
}
sout.flush();
sout.close();
in.close();

//System.out.println(rs.getString("chanpinmingcheng"));
}
} catch (SQLException e) {
e.printStackTrace();
//System.out.println("错误");
} finally {
rs.close();
psmt.close();
conn.close();
}
%>
</body>
</html>
<%
out.clear();
out = pageContext.pushBody();
%>
效果上面的一样。不正确!!


求大神指点迷津。struts2后台如何编写循环输出的二进制图片流或者jsp的也行。 二进制 图片 struts2 jsp
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,