我试图通过从数据库中检索路径,使用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>
答案 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
)。