2012-03-12 3 views
0

Я пытаюсь загрузить файл с помощью rich: fileUploader и его не запускать uploadListener.Fileuploader не запускает actionListener

Вот код, дайте мне знать, если что-то не хватает :)

<f:view> 
    <a4j:loadScript src="resource://jquery.js" /> 
    <h:form id="uploadFileForm" prependId="false"> 
     <rich:fileUpload immediateUpload="true" 
      listHeight="150px;" noDuplicate="true" listWidth="350px;" 
      maxFilesQuantity="1" locale="de" 
      fileUploadListener="#{paramFileUpload.fileUploadsListener}"> 
     </rich:fileUpload>   
    </h:form> 
    </f:view> 

public void fileUploadsListener(UploadEvent event) { 
    LOGGER.info("In ActionListener of file upload"); 
    UploadItem item = event.getUploadItem(); 
    LOGGER.info("item : " + item.getFileSize() + ", " + item.getContentType() + ", " + item.getData()); 
    if(item.getFile() != null) { 
     LOGGER.info("File name and size : " + item.getFile().getPath() + ", " + item.getFile().getTotalSpace()); 
    } 
} 

Это в web.xml

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>server</param-value> 
</context-param> 

Когда страница загружается, консоль Firebug показывает errro, как показано ниже :

parentForm is null 
ProgressBar={};ProgressBar=Class.creat...' {parentForm=parentForm.parentNode;} 

И когда файл выбран из файлового браузера,

this.progressBar is undefined 
if(this.labelMarkup){var progressData=...._fileSizeScriptTimeoutId=undefined;} 
+1

Мой код для загрузки файлов в значительной степени похож на ваш, и у меня такие же конфигурации в web.xml. Убедитесь, что на вашей странице нет вложенных форм. –

+0

Нет, на странице нет вложенных форм. Я до сих пор не понимаю, что может быть неправильным здесь :( – Satya

+0

Очень странно. Кстати, вы протестировали страницу, где есть только компонент 'fileUpload'? Возможно, это просто конфигурация для скриптов, проверьте ваш web.xml параметр context 'org.richfaces.LoadStyleStrategy' Я установил значение' ALL'. –

ответ

0

Наконец, я должен был сделать это tomahawk путь, определив сервлет в web.xml и используя t:inputFileUpload, чтобы загрузить файл. Это запустит мой бэк-компонент, чтобы получить UploadedFile :)

Смежные вопросы