我使用接缝,我有一系列网页都支持相同的操作。在第一个网页上,您可以选择上传文件。在最后一页上,您确认了一些信息,然后保存了所有内容。在此确认页面上,我有一个链接,可以下载在开始时上传的文件。
除了下载链接想要将用户带到另一个页面(而不是仅仅下载文件或在另一个窗口/选项卡中打开它)以及如果您按照链接或在另一个选项卡中打开它,这一切都正常支持操作不再是原始会话的一部分,因此所有值都为空。
这是我的资源<s:resource xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
data="#{myAction.pdf}"
contentType="application/pdf"
fileName="#{myAction.pdfName}"/>
这是下载控件:
<s:download src="/exportPdf.xhtml" rendered="#{myAction.hasPdf}" >
<h:outputText value="#{myAction.pdfName}"/>
</s:download>
这里是动作类:
@Name("myAction")
@Scope(ScopeType.CONVERSATION)
public class MyAction {
private byte[] pdf;
private String pdfName;
public String getPdfName() {
return pdfName;
}
public void setPdfName(String pdfName) {
this.pdfName = pdfName;
}
public byte[] getPdf() {
return pdf;
}
public void setpdf(byte[] pdf) {
this.pdf = pdf;
}
public boolean hasPdf(){
return true;
}
链接使用文件名呈现正常,单击它会转到getPdf()方法,该方法应返回pdf的字节数组。支持操作中的所有内容现在都为null。由于某种原因,链接的资源似乎不包含在原始操作的范围内。
答案 0 :(得分:0)
我最终创建了一个休息服务来提供文件,并使用了一个标准的html链接标记,目标是“_blank”。