【问题标题】:struts property tag not working with <img src> tag in jspstruts 属性标记不适用于 jsp 中的 <img src> 标记
【发布时间】:2015-06-02 06:52:11
【问题描述】:

我试图通过从数据库中检索路径来使用 JavaBean 和 Struts 2 在 JSP 页面上显示图像文件。 &lt;img&gt; 标签无法识别图像路径。

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

<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

使用&lt;img&gt; 标记编写此语句时不显示任何内容。

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

【问题讨论】:

  • 为什么是%{path} 而不是${path}
  • 图像是相对于您的应用程序提供的,或者通过将它们放在已知位置并从操作或 servlet 流式传输它们,或者通过将服务器位置映射到该路径等方式提供。

标签: java jsp struts2


【解决方案1】:

所以首先在渲染页面中检查 img 标签实际上包含正确的路径参数(你说你试图打印出来但更好的 dbl 检查)。 (查看源代码,或者在 Firefox 中,右键单击并检查元素)。

但是,主要问题是您的实际路径。从问题来看,它是 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(或者../1011_1.png,如果你的struts动作在某个包中)。

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 2015-05-14
    • 2015-01-28
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2017-03-30
    相关资源
    最近更新 更多