私はicefaces3を使用しています。私の問題は、fileEntryListenerを持つace:fileEntryがあることです。フォームの最後に、actionListenerが設定されたah:commandButtonがあります。commandButtonをクリックすると、ボタンのactionListenerのみが呼び出されますが、fileEntryListenerが完全には呼び出されないことに気付きます。つまり、ファイルは一時的な場所にアップロードされますが、fileEntryListerner内の実際のコードは呼び出されません。fileEntryListernerに、アップロードされたファイルを別の場所にコピーするためのカスタマーロジックを記述しましたが、これは機能しません。以下は私のコードです。fileEntryListnerコードが完全に機能しない理由を誰かが説明できますか?
<td>
<ace:fileEntry id="file-entry" label="Attachment"
absolutePath="/STR_UPLOADED_FILES"
maxFileCount="1"
maxFileCountMessage="Limited to 1 files uploaded concurrently."
fileEntryListener="#{strformbean.fileuploadListener}"
maxFileSize="6291456"
maxFileSizeMessage="Submitted file is too large.Max size allowed is 6MB"
maxTotalSize="6291456"
maxTotalSizeMessage="Total size of submitted files is too large."
required="false"
requiredMessage="The file is required to submit this form."
useOriginalFilename="false"
useSessionSubdir="false" />
</td>
<td colspan="2" class="sectionHeader" align="center">
<h:commandButton id="submitM" type="submit" value="SAVE" action="strform" actionListener="#{strformbean.saveSTR}"/>
</td>
public void fileuploadListener(FileEntryEvent e)throws Exception {
log.info("Inside fileuploadListener started....");
FileEntry fe = (FileEntry)e.getComponent();
FileEntryResults results = fe.getResults();
File parent = null;
ArrayList fileData = new ArrayList<String>
...........。
上記のロガー情報行はまったく印刷されませんが、ファイルはアップロードされます。