我正在使用JSF 1.2框架。现在,我正在尝试执行文件上传过程,其中要上传的文件数由最终用户控制。请找到下面的快照和代码片段以供参考。多文件上传 - JSF
XHTML实施: -
<a4j:commandLink action="#{importWSDLBean.xsdLoopIncrementAction}" reRender="WSDLPanelGrid">
<h:graphicImage value="/images/plus_icon.gif" />
</a4j:commandLink>
<a4j:commandLink action="#{importWSDLBean.xsdLoopDecrementAction}" reRender="WSDLPanelGrid">
<h:graphicImage value="/images/minus_icon.gif" />
</a4j:commandLink>
<h:panelGrid id="WSDLPanelGrid">
<c:forEach items="#{importWSDLBean.acscDataList}" var="inputFUpload">
<t:inputFileUpload id="#{inputFUpload.id}" value="#{inputFUpload.value}" />
</c:forEach>
</h:panelGrid>
的Java bean的实现: -
public String xsdLoopIncrementAction() {
if (acscDataList == null) {
acscDataList = new ACSCDataList(new ArrayList());
HtmlInputFileUpload htmlUpload = new HtmlInputFileUpload();
htmlUpload.setId("upload" + (acscDataList.size() + 1));
acscDataList.add(htmlUpload);
} else {
HtmlInputFileUpload htmlUpload = new HtmlInputFileUpload();
htmlUpload.setId("upload" + (acscDataList.size() + 1));
acscDataList.add(htmlUpload);
}
return "success";
}
public String xsdLoopDecrementAction() {
if (acscDataList != null) {
if (acscDataList.size() > 0) {
acscDataList.remove(acscDataList.size() - 1);
}
}
return "success";
}
此实现重置每当我递增或递减没有文件上传值。文件上传字段。此外,当我提交表单我无法获得UploadedFile对象(文件上传先决条件,如表单类型和Web.xml配置也包括在内)。
任何人都可以帮我吗?
升级到JSF2似乎是一个时间杀手的任务,因为我们面临很多的问题,配置:(。你肯定多文件上传是否可用于JSF 1.2? – 2011-05-02 08:01:58
很确定,是的,虽然该组件使用Flash(在下一个Primefaces发行版中不会再有),但我不知道升级如何成为时间杀手任务,您不必更改配置(你可以使用注释,但不会强制) – ymajoros 2011-05-02 13:09:16