日期:2014-05-17  浏览次数:20722 次

ssh前台用iterator显示图片错误
后台的action返回list结果,前台使用struts标签显示结果,数据可以正常,但是图片显示不出来,查看网页源代码的时候,把源代码复制,新建一个html后,图片可以正常显示。
 <s:iterator value="allProducts" var="product" id="p">
      <tr>
          <td class=forumrow><s:property value="#p.PName"/> </td>
          <td class=forumrow><img src="<s:property value="#p.PPic0"/>" height="30dp" width="30dp"></td>
          <td class=forumrow><img src="<s:property value="#p.PPic1"/>" height="30dp" width="30dp"></td>
          <td class=forumrow><img src="<s:property value="#p.PPic2"/>" height="30dp" width="30dp"></td>

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

1.你给s:iterator加了id完全是多此一举啊,value里直接写你bean的属性就OK了,看不懂你为什么要那样写。

2.关于图片显示你要考虑一下路径问题吧,建议给项目的全路径,加上<%request.getRealPath()%>。

在数据库里面查出来的是绝对路径啊
在生成的网页的源代码里面是
<td class=forumrow><img src="D:\apache-tomcat-7.0.47\webapps\Shop\upload\14031514570062.PNG" height="30dp" width="30dp"></td> 

这明显就不对了吧。你的图片不能从你本地读么。换个ip访问图就没了。
你要把图放到你的项目里。src是你的ip地址+项目名+图片路径

好了,谢谢。没做过项目,经验少。给点建议吧。

关于图片这块给你点建议。
1.如果只是读取显示的话,你数据库的路径应该是相对路径,比如:img/xxx.jpg. img就是你WebContent下的文件夹。这样你在你的src里面串上项目的绝对路径,像这样src="<%request.getRealPath()%><s:property value="#p.PPic0"/>",大体上是这样,细节自己调整,这样得到的就是你项目在服务器端的路径。
2.你有图片查看必定就应该有图片上传,关于struts的文件上传很简单,网上搜一下,需要给你说的是你上传完了之后要在数据库存你的图片路径,这里你可以只存图片名,然后在Action中做响应处理,保证路径正确。大体就这些。