【问题标题】:Load an img in a JSP在 JSP 中加载 img
【发布时间】:2019-11-05 10:19:25
【问题描述】:


我正在尝试在 JSP 中动态加载图像,并且正在尝试执行以下操作:

<img src="<%= book.img %>">

其中 book.img 包含一个字符串(绝对路径)。我该如何解决这个问题? 我收到的错误如下:
元素 img 上的属性 src 值错误:PATH 中的 DOUBLE_WHITESPACE。

【问题讨论】:

  • 哪个问题?你能描述一下吗?
  • book.img 是否包含域和上下文?
  • 为什么要使用 scriptlet 和公共字段:在一行代码中,这是两种不好的做法。
  • book.img 是绝对路径
  • @antox 我向您提供了一个非常一般的错误,如果您需要更多帮助,请提供您的目录结构以及 book.img 的值

标签: html image jsp


【解决方案1】:

book.img 应该包含服务器上图像的绝对 URL。

因此,如果您的图像存储在:

Webcontent/resources/images/

你有一张图片:

close-button.png

book.img 应该 = /resources/images/close-button.png

然后在你的 JSP 中使用 JSTL 创建 URL:

<img src="<c:url value="${book.img}"/>"/>

c:url 会将域和上下文作为绝对 URL 的前缀。

另一种不用JSTL的方式是:

 <img src="${pageContext.request.contextPath}${book.img}"/>

【讨论】:

  • 两种方式都行不通。我注意到,如果我在我的 jsp 所在的当前文件夹中替换图像,它就可以正常工作,但是如果我在另一个目录中替换图像,在这种情况下 /img/ 它不起作用
  • @antox 你能发一个网址的例子吗?
【解决方案2】:

我尝试了无数种不同的解决方案,这些解决方案大多在 SO 中找到,这个问题被问了 3 或 4 次。很多很多的答案告诉您在 HTML 中写什么,但不会费心告诉您这意味着您的图像文件应该驻留在哪里。唯一对我有用的是:

将您的图像文件直接放入您的“WebContent”目录中。那么你的jsp文件中的HTML是:

    <img src="${pageContext.request.contextPath}/myImageFileName.png">

通过推断,我会说如果您将图像文件放入 WebContent/Images 之类的子目录中,那么您只需将该子目录添加到 src 中,您就可以弄清楚如何操作。但我没有测试。

【讨论】:

    猜你喜欢
    • 2017-01-15
    • 2017-05-04
    • 2019-03-07
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多