Я использую каркас JSF 1.2.Прямо сейчас я пытаюсь реализовать процесс загрузки файлов, в котором количество загружаемых файлов контролируется конечным пользователем.Пожалуйста, найдите приведенный ниже снимок и фрагмент кода для справки.
Реализация 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";
}
Эта реализация сбрасывает значения загрузки файла всякий раз, когда я увеличиваю или уменьшаю значение no.полей загрузки файла.Также, когда я отправляю форму, я не могу получить объект UploadedFile (обязательное условие загрузки файла, такое как тип формы и конфигурация Web.xml, также включено).
Может ли кто-нибудь мне помочь?