struts属性标记在jsp中不与<img src=""/>标记一起使用

时间:2015-03-29 06:04:56

标签: java jsp struts2

我试图通过从数据库中检索路径,使用JavaBean和Struts 2在JSP页面上显示图像文件。 <img>标记无法识别图像路径。

当我尝试使用此行显示路径时,它显示正确的路径:

<s:property value='%{path}'/>
<s:property value='#{path}'/>

# Displays

C:\Users\Admin\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\File_Demo\1011_1.png

使用<img>标记编写此语句时,不会显示任何内容。

<%@ taglib uri="/struts-tags"  prefix="s"%>
<html>
  <body>
    <img alt=":p" src="<s:property value='%{path}'/>"/>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

首先检查呈现的页面,img标签实际上包含正确的路径参数(你说你试图打印出来但更好的dbl检查)。 (查看源代码,或在Firefox中,右侧clikc和inspect元素)。

但是,主要的问题是你的实际路径。从这个问题来看,它是你C:驱动器上某个目录的绝对路径。但是,您的浏览器不是直接从驱动器获取该文件,而是服务它的服务器,因此您的服务器(tomcat我猜??)需要能够解析特定文件的路径。通常,Web服务器使用相对路径而不是绝对路径,因此它无法提供机器的整个内容。

在webapp中,它将是与您的webapp子文件夹相关的文件: 看着...\org.eclipse.wst.server.core\tmp0\wtpwebapps\File_Demo\1011_1.png。 我猜(我自己不使用eclipse),你的服务器在org.eclipse.wst.server.core\tmp0下,你的webapp被称为File_Demo

因此,图片的正确路径应仅为1011_1.png(如果您的struts操作位于某个包内,则为../1011_1.png)。