基本上我们有一个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可以使用它。
答案 0 :(得分:2)
以通常的Servlet方式将其作为请求参数或pathinfo传递。
这是一个假设路径信息首选且#{bean.pdfpath}
返回filename.pdf
之类的示例:
<h:outputLink value="pdf/#{bean.pdfpath}">Download pdf</h:outputLink>
在映射到/pdf/*
网址格式的servlet中,您可以在doGet()
方法中获取如下内容:
String pdfpath = request.getPathInfo();
// ...
作为一个完全不同的替代方案,您也可以让JSF在命令链接/命令按钮操作方法中将PDF写入响应。
答案 1 :(得分:0)
保持生成/创建的pdf文件的位置固定,只需传递
文件的名称/pdfServlet?fileName=#{someBean.someFileName}
在servlet的doGet()
中检索fileName并提供文件。
String fileName = request.getParameter("fileName");