JSF如何从支持bean重定向到支持bean中动态构造的URL?

JSF如何从支持bean重定向到支持bean中动态构造的URL?,jsf,primefaces,Jsf,Primefaces,希望能有一个例子来说明这个问题。我有10个文档显示在页面上,其中3个包含zip包中包含的其他信息。在初始页面加载期间,我只知道哪些文档包含此附加信息,我不知道这些zip文件的URL。然后,我显示了一个链接('Get-Zip Package'),指向包含其他Zip文件的3个文档。当用户单击“getzip包”时,它会调用支持bean中的一个方法,该方法将转到数据库以计算Zip包的URL。一旦这样做了,我想服务的zip包到浏览器,然后会弹出作为另存为。。。对话框,用户可以保存zip包 我试过两种方法,

希望能有一个例子来说明这个问题。我有10个文档显示在页面上,其中3个包含zip包中包含的其他信息。在初始页面加载期间,我只知道哪些文档包含此附加信息,我不知道这些zip文件的URL。然后,我显示了一个链接('Get-Zip Package'),指向包含其他Zip文件的3个文档。当用户单击“getzip包”时,它会调用支持bean中的一个方法,该方法将转到数据库以计算Zip包的URL。一旦这样做了,我想服务的zip包到浏览器,然后会弹出作为另存为。。。对话框,用户可以保存zip包

我试过两种方法,但都不管用

方法1


公共字符串压缩包(DocItem){
//这里的逻辑用于计算此项目的zip包的URL
返回包装链接;
}
方法2


您可以尝试使用这种逻辑:

ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
context.redirect(context.getRequestContextPath() + "download-page.jsf?product=" + product + "&version=" + version);