2017-01-13 109 views
3

我想上傳多個文件並將它們綁定到條紋框架中的java數組。我已閱讀SO上的文檔herethis question。不過,我仍然有問題。當在調試中運行時,如果我上傳多個文件,我注意到只有最後一個文件被綁定到數組。我做錯了什麼?上傳帶條紋的多個文件

<stripes:form> 
<c:forEach varStatus="loop" begin="0" end="3"> 
<stripes:file name="attachments[${loop.index}]"/> 
</c:forEach> 
<stripes:submit name="submit" /> 
</stripes:form> 

private List<FileBean> attachments = new ArrayList<FileBean>(); 
public void setAttachments(List<FileBean> attachments) throws IOException { 
    logger.info("*********************Attachments " + attachments.size()); 
    this.attachments = attachments; 
    //documentation says to call FileBean.save or read them as a stream 

} 

回答

1

你可以忽略二傳手。變量attachments已通過new運算符初始化。

private List<FileBean> attachments = new ArrayList<FileBean>(); 

public List<FileBean> getAttachments() { 
    return this.attachments; 
} 

public Resolution submit() { 
    System.out.println("********************* Attachments " + attachments.size()); 
    return show(); 
} 

@DefaultHandler 
public Resolution show() { 
    return new ForwardResolution("[path to jsp]"); 
} 

按下「提交」的表單中所稱的「提交」解決方案,您現在可以檢查填充附件,保存它們, - 再次迴歸到形式 - 在這個例子中。或者你可以顯示你的訪客另一頁。

+0

我試過了,但是當我上傳兩個文件換句話說控制單擊文件對話框中的兩個文件。該數組僅在調試模式下保存一個項目。我需要能夠用n個附件填充附件數組 – Hardrock302

+0

您的意思是一個''?我不會說在Stripes中這是不可能的,但它可能並不容易。正如建議的那樣,去年在bean的郵件列表上有一個討論https://sourceforge.net/p/stripes/mailman/message/34787765/也許嘗試一個ajax(jQuery)腳本。 – acdhirr