>基本上,我们有一个JSF应用程序,它可以动态生成指向servlet的链接,该servlet提供PDF文件。我需要将PDF的路径传递给servlet。我不知道如何将数据传递给servlet。
在视图中,我们有:
<d:protocolSection value="#{detailBacker.studyData}" id="protocol" />
在控制器中,我们有
public string getFile() {
.......
// some variable here that holds the folder and file name
result += "<a href="/catalog/catalog/WelcomeServlet" target="_blank">" + name + "</a>
.......
}
我基本上需要以某种方式将保存文件夹和文件名的变量发送到 WelcomeServlet,以便 WelcomeServlet 可以使用它。
以通常的 Servlet 方式将其作为请求参数或路径信息传递。
下面是一个假设 pathinfo 是首选并且#{bean.pdfpath}
返回类似 filename.pdf
的示例:
<h:outputLink value="pdf/#{bean.pdfpath}">Download pdf</h:outputLink>
在映射到 URL 模式的 Servlet 中 /pdf/*
您可以在doGet()
方法中按如下方式获取它:
String pdfpath = request.getPathInfo();
// ...
作为完全不同的替代方法,您也可以让 JSF 在命令链接/命令按钮操作方法中将 PDF 写入响应。
保持生成/创建的PDF文件的位置固定,只需传递文件名,例如
/pdfServlet?fileName=#{someBean.someFileName}
在 servlet 的doGet()
检索文件名并提供服务。
String fileName = request.getParameter("fileName");