使用条纹上传多个文件

Uploading multiple files with stripes

我正在尝试上传多个文件并将它们绑定到 stripes 框架中的 java 数组。我已经阅读了有关 SO 的文档 here and this 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

}

您可以省略 setter。 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]");
}

在表单上按 'submit' 调用 'submit' 解决方案,您现在可以在其中检查填充的附件,保存它们,然后 - 在本例中 - 再次 return 到表单。或者您可以向访问者显示另一个页面。