我正在使用seam并且我有一系列网页都支持相同的动作。在第一个网页上,您可以选择上传文件。在最后一页,您确认一些信息,然后保存所有内容。在此确认页面上,我有一个链接,用于下载开始时上传的文件。煤层下载控件
这一切都工作正常,除了下载链接想把用户带到另一个页面(而不是下载文件或在另一个窗口/选项卡中打开它),并且如果你确实按照链接或在另一个窗口中打开选项卡,支持操作不再是原始对话的一部分,因此所有值都为空。
这里是我的资源<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>
这里的Action类:
@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;
}
链接呈现细跟的文件名,然后点击它去应该返回pdf的字节数组的getPdf()方法。只是支持行动中的所有内容现在都是空的。由于某种原因,链接资源似乎未包含在原始操作的范围内。
您是否尝试过使用s:download标记的'propagation'属性?这应该允许您传播当前的对话 – DaveB 2014-10-05 21:30:06