我正在尝试在我的机器上显示放置在某个文件夹中的图像。我有一个要在其上显示图像的 xhtml 页面。
我尝试过使用<h:graphicImage value="C:/images/abc.jpg" />
纯 HTML 标记
<img src="C:/images/abc.jpg" />
,但以上都不起作用。
此外,我尝试将图像放在 WebContent 中并尝试从那里访问它,但仍然徒劳无功。我哪里出错了?
我正在使用 Jboss AS 7.0
如果您想访问 webContent 之外的图像,则需要多做一些工作。基本上你有三个选择:你使用servlet、PrimeFaces或OmniFaces。这个问题也在这里得到了回答:
使用 <h:graphicImage> 或 <img> 标签从 webapps / webcontext / deploy 文件夹外部加载图像
我过去也遇到过同样的问题,我通过使用servlet解决了这个问题。我是这样定义的
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
@WebServlet("/images/*")
public class ImageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getPathInfo().substring(1);
File file = new File("C:Images/", filename);
response.setHeader("Content-Type", getServletContext().getMimeType(filename));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");
Files.copy(file.toPath(), response.getOutputStream());
}
}
那么,如果你想展示C:/images/abc.jpg
你使用
<h:graphicImage value="/images/abc.jpg" />
它对我来说很好。