Как сбросить входной файл в форме после отправки формы с файлом в ADF

У меня есть форма, в которой у меня есть 3 поля ввода и одно af: inputFile, где мне нужно загрузить файл и окончательное сохранение. Я не могу использовать valueChangeEvent для inputFile, потому что, если я использую ResetUtils, я не получу входные значения формы. При сохранении все работает нормально, но когда я снова добавляю запись, последний обновленный файл все еще отображается во входном файле (он не сбрасывается). После сохранения, если я устанавливаю привязку входного файла к нулю, затем выполняю частичный триггер для компонента, используя привязку его загрузки страницы, для сохранения которой требуется огромное время, поэтому я не могу ее использовать.

Вот мой код

<af:panelFormLayout id="pfl1" rows="3">
<af:inputText value="#{bindings.Title.inputValue}" label="#{bindings.Title.hints.label}"
                                required="#{bindings.Title.hints.mandatory}"
                                columns="#{bindings.Title.hints.displayWidth}"
                                maximumLength="#{bindings.Title.hints.precision}"
                                shortDesc="#{bindings.Title.hints.tooltip}" id="it1" contentStyle="width:150px">
                    <f:validator binding="#{bindings.Title.validator}"/>
                  </af:inputText>
  <af:panelGroupLayout id="pgl350" layout="horizontal">
<af:inputFile label="Select" id="if51" value="#{ContractDocumentUploadDwn.file}"
showRequired="true" binding="#{ContractDocumentUploadDwn.inputFileBinding}"/>
<af:button text="Upload" id="b353" action="#{ContractDocumentUploadDwn.uploadPortfolioDoc}"/>
 </af:panelGroupLayout>
</af:panelFormLayout>

Java-код:

 public void savePortfolioDoc(ActionEvent actionEvent) {
        // Add event code here...

        DCIteratorBinding iter = getDCIteratorBinding("portfolioDocument1Iterator");
        UploadedFile myfile = (UploadedFile) this.getInputFileBinding().getValue();
        String binding = "Commit1";
        String popUpId = "p2";
        genericSaveDocuments(actionEvent, iter, myfile, binding, popUpId, "Portfolio");//Saves the document
        iter.executeQuery();
        iter.refresh(1);
        setInputFileBinding(null);
        ResetUtils.reset(actionEvent.getComponent());

    }

person Vidya Hugar    schedule 21.01.2016    source источник
comment
Не знаю, является ли это решением вашей проблемы, но... посмотрите на первую строку вашего JSP на <af:<panelFormLayout, это неправильный синтаксис. Возможно, поэтому он не работает так, как ожидалось.   -  person bobbel    schedule 21.01.2016
comment
Я отредактировал свой вопрос, пожалуйста, проверьте. Синтаксической ошибки нет. при копировании и вставке кода по ошибке вводится этот символ.   -  person Vidya Hugar    schedule 21.01.2016
comment
Все это выглядит как беспорядок, ваше описание и код не совпадают. Похоже, у вас есть отдельная кнопка для загрузки файла, почему? Если вы отправляете форму, вы можете использовать только кнопку отправки. Как правило, вам не нужно выполнять запрос или обновлять форму. Однако вам нужно вызвать действие PPR, чтобы сформировать оболочку, например panelFormLayout, чтобы сделать видимыми изменения в bean-компоненте.   -  person Nagh    schedule 22.01.2016


Ответы (2)



введите здесь описание изображенияПросто перейдите во всплывающее окно, где находится кнопка загрузки. Затем в свойствах "Доставка контента" установите значение lazyUncache "ChildChildren" установите значение Немедленно "Автоматическая отмена". " установите значение Disable, а для последнего "ResetEditableValues" установите значение WhenCancel. Это будет работать правильно, счастливое кодирование :)

person Nimai    schedule 21.11.2017