2012-06-11 37 views
1

我已經在我的Struts以下ActionForm文件輸入消失的Struts無效表上刷新

private List<FormFile> attachmentList = new ArrayList<FormFile>(); 

public MyForm() { 
    for (int i = 0 ; i < 5 ; i++) { 
     getAttachmentList().add(null); 
    } 
} 

public List<FormFile> getAttachmentList() { 
    return attachmentList; 
} 

public void setAttachmentList(List<FormFile> attachmentList) { 
    this.attachmentList = attachmentList; 
} 

public FormFile getAttachmentList(int index) { 
    return getAttachmentList().get(index); 
} 

public void setAttachmentList(int index, FormFile formFile) { 
    getAttachmentList().set(index, formFile); 
} 

而在我的JSP中,我有以下

<c:forEach var="counter" begin="0" end="4"> 
    <input type="file" name="attachmentList[${counter}]" size="50" /> 
</c:forEach> 

一切正常,除非的validate方法ActionForm發現錯誤(通常與表單上的其他字段有關)。當表單重新加載時,文件輸入不再被填充。在顯示Action返回重新加載的頁面之前,我添加了一個斷言權,並且ActionForm具有正確數量的附件(它們的文件名不是空白等)。

有誰知道如何使文件綁定和保持?

回答

2

無法預先填寫文件字段;這是一個衆所周知的瀏覽器,與Struts無關。