我有一个JSP,只显示和图像为标题。我将其更改为.tag文件以进行自定义标记开发。我在eclipse中这样做,我的项目结构是 -
我试图在服务器上运行的jsp是jsp文件夹下的Header.jsp。问题是即使我使用图像的完全限定路径,也不会显示图像。 Insted,我看到一个红十字。我该如何解决 ?
当我将此文件用作另一个jsp引用的.tag文件时,标记的内容不会出现在该jsp中。
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>
答案 0 :(得分:4)
您在此处指定的网址是您网站的绝对网址,而不是网络应用。
<img src="/images/java_logo.gif">
因此尝试使用(用正确的名称替换WEBAPPROOT)
<img src="/WEBAPPROOT/images/java_logo.gif">
或使其相对:
<img src="../images/java_logo.gif">
答案 1 :(得分: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" />