我有一個表單,其中有3個輸入字段和一個af:inputFile,我需要上傳文件並最終保存。 我不能使用valueChangeEvent作爲inputFile,因爲如果我用戶ResetUtils然後我不會得到表單輸入值。 保存一切工作正常,但當我再次添加一條記錄,然後最後更新的文件仍然顯示在inputFile(它不重置)。 保存後,如果我設置輸入文件綁定爲null,然後做部分觸發組件使用綁定其加載頁面花費巨大的時間來保存,所以我不能使用它。如何在用ADF中的文件提交表單後重置表單中的輸入文件
這裏是我的代碼
<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());
}
不知道,如果這是你問題的解決方案,但是......在'
bobbel
我編輯了我的問題,請檢查。沒有語法錯誤。同時錯誤地複製和粘貼代碼來輸入字符。 –
它的一切看起來像一團糟,你的描述和代碼不匹配。它看起來像你有單獨的按鈕來上傳文件,爲什麼?如果您提交表單,則可以使用「提交」按鈕。一般來說,您不需要執行查詢或刷新表單。然而,你確實需要調用PPR動作來形成像'panelFormLayout'這樣的包裝,以使bean中的更改可見。 – Nagh