我正在使用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