2014-09-30 78 views
0

我正在使用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()方法。只是支持行動中的所有內容現在都是空的。由於某種原因,鏈接資源似乎未包含在原始操作的範圍內。

+0

您是否嘗試過使用s:download標記的'propagation'屬性?這應該允許您傳播當前的對話 – DaveB 2014-10-05 21:30:06

回答

0

我最終創建了一個rest服務來爲文件提供服務,並使用了一個標準的html鏈接標籤來定位「_blank」。