【问题标题】:Display list of images in JSP在 JSP 中显示图像列表
【发布时间】:2019-09-29 09:22:49
【问题描述】:

我在 JSP 中显示图像列表时遇到问题。我有一个存储在项目主管中的图像列表,图像列表从 servlet 传递到 JSP 文件,但它不会显示。我需要一些关于我的 jsp 标签的帮助。

在 JSP 文件中,我有

<c:forEach var="img" items="${imgUrlList}">
    <img src="<c:url value="${img}"/>"/>

</c:forEach>

//servlet

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List imgUrlList = new ArrayList();

        File imageDir = new File(getServletContext().getRealPath("/images"));
        File[] files = imageDir.listFiles();

            if (files!= null) {

                for (File imageFile : files) {
                    String imageFileName = imageFile.getName();
                    imgUrlList.add(imageFileName);
                }
            }
            else {
                System.out.println("directory is empty");
            }

        req.setAttribute("imgUrlList", imgUrlList);
        System.out.println(imgUrlList.toString());

        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/test/test.jsp");
        dispatcher.forward(req, resp);

【问题讨论】:

  • 假设您的images 资源文件夹包含一个foo.gif 文件,这意味着您将C:\path\to\webapp\images\foo.gif 添加到列表中,因此生成类似&lt;img src="C:\path\to\webapp\images\foo.gif"/&gt; 的内容,但问题是该文件存在在 server 上,而不是在 client 计算机上,所以它不起作用。您需要生成一个将被 webapp 获取的 URL,即&lt;img src="/CONTEXT/images/foo.gif"/&gt;
  • 我试过没有任何运气。
  • 尝试在浏览器中“查看源代码”,这样您就可以看到 JSP 的结果。那么您可能会更好地理解真正的问题,即文件路径是完全限定的事实。
  • 您需要在 WebContent 文件夹中创建 images 文件夹。

标签: java jsp jsp-tags


【解决方案1】:

我通过附加我的 jsp 来修复它。

<c:forEach var="img" items="${imgUrlList}">

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

</c:forEach>

【讨论】:

    【解决方案2】:

    图像 'src' 属性是相对于您的 Web 应用程序的上下文根的。图像存储在 WEB-INF 文件夹之外。在项目的“WebContent”文件夹中创建“images”文件夹。

    WEB-INF 通常用于 jsps 等容器使用的资源,其他资源通常位于相对于 WebContent 文件夹的文件夹中。

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 2012-06-28
      • 1970-01-01
      • 2015-03-13
      • 2013-02-10
      • 1970-01-01
      相关资源
      最近更新 更多