【发布时间】:2013-02-10 05:01:39
【问题描述】:
我正在尝试在 jsp 中显示图像,我正在使用以下代码但它不显示图像,它只显示一个图像图标,表示链接已损坏。
当我将文件放在 images 文件夹中时,它可以工作,但在 logos 文件夹中时找不到文件。
图片在这个地址Web pages\images\logos\Tulips.jpg
我的代码如下
<%@taglib uri="/struts-tags" prefix="s"%>
....
<img src="<s:url value="/images/logos/Tulips.jpg"/>"/>
.....
人们建议我使用以下内容,我添加了以下代码和依赖项,但它在 taglib 行上显示以下错误。
Unable to read TLD "META-INF/c.tld" from JAR file javaee-web-api.6.0.jar : org.apache.jasper.JasperException :PWC6169: Failed to load or instantiate TagLibraryValidator class:
org.apache.taglibs.standard.tlv.jstlCoreTLV
jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<img src="<c:url value="/images/logos/Tulips.jpg"/>"/>
pom
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-parent</artifactId>
<version>3</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<type>jar</type>
</dependency>
【问题讨论】:
-
这个jsp在哪里?
-
你可以试试
"./images/logos/Tulips.jpg"吗? -
但这没有任何意义;它不应该是相对路径:(a) 它不是相对路径,并且 (b) 相对路径可能会根据特定 JSP 的使用方式而严重损坏。
-
只是为了澄清,你说它在 images 文件夹中有效,但在 logos 文件夹中无效?所以
<img src="<s:url value="/images/Tulips.jpg"/>"/>有效,但是当您将 Tulips.jpg 移动到/images/logos时,<img src="<s:url value="/images/logos/Tulips.jpg"/>"/>不再有效? -
名称或访问权限存在问题...因为我假设您以相同的方式创建所有文件夹,我怀疑您决定设置权限以使任何内容都无法访问在徽标下...啊,删除文件夹并重新创建它。还要部署应用程序并查看部署以查看 jsp 是否在您期望的位置。 s:url 标签没有任何问题(您可以验证它正在构建您期望在 html 源代码中的内容)。您可以手动输入指向正确图像位置的 url,您应该会得到一张图像。这将是一件简单的事情。