我是Primefaces的新手,我正在做一个项目,我需要从项目目录外显示多个图像。让我想我的C目录中有一个名为image的文件夹,我的图像文件夹中有多个子文件夹。我需要使用p:gallery of primefaces显示特定子文件夹中的所有图像。
我已经检查了一些使用示例,但我没有找到它的任何输出。请帮我解决一下。
我使用了以下编码
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/images/*")
public class ImageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try
{
String filename = request.getPathInfo().substring(1);
System.out.println("path is"+filename);
File file = new File("D:/images/", filename);
response.setHeader("Content-Type", getServletContext().getMimeType(filename));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");
System.out.println("out put path"+file.toPath());
Files.copy(file.toPath(), response.getOutputStream());
}
catch(Exception e)
{
System.out.println("Exception is"+e.toString());
}
}
}
和我写的页面
<h:graphicImage value="/images/filename.ext" />
但我得到了以下异常
path isfilename.ext
输出路径
D:\images\filename.ext
例外是
java.nio.file.NoSuchFileException: D:\images\filename.ext
请给出任何建议
答案 0 :(得分:0)
here你可以找到一个完整的FileServlet类(你的遗失了几个主要的东西)。
在修改FileServlet.java以适合您的目的后,您应该使用
<p:graphicImage height="???" width="???"rendered="???" value="yout/path/#{image}" cache="????" />
页面