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