【问题标题】:Image cannot be displayed by a simple JSP简单的 JSP 无法显示图像
【发布时间】:2014-06-23 11:37:40
【问题描述】:

我有一个 JSP,它只是将图像显示为标题。我会将其更改为 .tag 文件以进行自定义标签开发。我在 Eclipse 中这样做,我的项目结构是 -

我试图在服务器上运行的 jsp 是 jsp 文件夹下的 Header.jsp。问题是图像没有显示,即使我使用图像的完全限定路径。 Insted,我看到了一个红十字。我该如何解决 ?

当我将此文件用作另一个jsp引用的.tag文件时,该jsp中不会出现tag的内容。

JSP 代码-

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib prefix="myTags" tagdir="/WEB-INF/tags"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<img src="/images/java_logo.gif"><br>

</body>
</html>

【问题讨论】:

    标签: java jsp jakarta-ee jsp-tags


    【解决方案1】:

    您在此处指定的网址是您网站的绝对网址,而不是网络应用。

    <img src="/images/java_logo.gif">
    

    所以尝试使用(用正确的名称替换WEBAPPROOT)

    <img src="/WEBAPPROOT/images/java_logo.gif">
    

    或使其相对:

    <img src="../images/java_logo.gif">
    

    【讨论】:

      【解决方案2】:

      如果您使用 JSP 或 Facelets,则更好使用HttpServletRequest#getContextPath

      <img src="${request.contextPath}/images/java_logo.gif" />
      

      如果你碰巧使用 JSTL:

      <img src="<c:url value="images/java_logo.gif" />" />
      

      通过这种方式,您可以避免使用相对路径和/或猜测您当前的 Web 应用程序路径(这是为了以防您更改名称以显示应用程序或类似的东西)。例如,如果你碰巧有这样的结构:

      - WebContent
        - images
          + java_logo.gif
        - jsp
          + Header.jsp
          - anotherFolder
            + Another.jsp
      

      如果你想在Another.jsp中添加java_logo.gif,你只需要这样做:

      <img src="${request.contextPath}/images/java_logo.gif" />
      

      不同于相对路径:

      <img src="../../images/java_logo.gif" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-10
        • 1970-01-01
        相关资源
        最近更新 更多