2

我是 Spring MVC 和 Spring 框架的新手,我正在努力学习它。

我使用 Spring Tool Suite 做了一个小的“hello world”项目,遇到了一个奇怪的问题。所以我开始了一个新的 Spring Project 并选择了 Spring MVC Project。我创建了一个控制器和一个视图 jsp 页面来显示一个 hello 页面。一切正常。这里没有问题。然后我决定在我的jsp页面中包含一张图片。我将一张图片复制到“webapp/resources”文件夹中,并在我的视图页面中放置了一个这样的 img 标签(其路径是“webapp/WEB-INF/views/hello.jsp”)。标签看起来像这样:

当我运行应用程序并转到我的视图页面时,它不会在 STS 内部浏览器或我的常规浏览器中显示图像。我试图从我的浏览器查看页面的源代码,源代码确实有 img 标签,但由于某种原因它没有显示。

我尝试将图像与我的 jsp 文件一起直接放在“webapp/WEB-INF/views”中,并将标签更改为:

但仍然没有成功。最后,我将此归咎于我对创建 jsp 的经验不足,并试图打开我的常规 Eclipse IDE(即与 STS 不同的一个)并创建了一个动态 Web 项目,我将标签插入到一个 jsp 文件中,并将图片复制到其中一个项目的子文件夹。我运行了这个项目,现在它可以工作了;图片显示。

为什么会这样?为什么它在常规 Web 项目中有效,而在 Spring MVC 项目中无效?感谢您的宝贵时间,如果您能帮助我,我将不胜感激!

4

2 回答 2

0

jsp 文件不是常规的 html 文件。您应该使用<c:url />标签来确保您的资源路径是从项目的根目录计算的:

<img src='<c:url value="/img/mylogo.png"/>' class="logo"/>

其中 mylogo.png 在 WebContent/img/ 内

于 2013-12-13T14:12:49.660 回答
0
I tried to put the image directly in "webapp/WEB-INF/views"

图像不应位于下方,/WEB-INF/因为此文件夹在应用程序之外不可访问。它应该在 .eg 下webappwebapp/resources/myLogo.png 然后像 : 一样使用resources/myLogo.pngimg src

于 2013-12-13T14:24:02.810 回答