将数据传递给servlet

时间:2011-05-12 15:53:24

标签: java jsf servlets

基本上我们有一个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可以使用它。

2 个答案:

答案 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");