2010-12-14 4 views
1

мы разрабатываем JSF весны WebFlow веб-приложение а и мы пытаемся использовать primefaces FileUpload виджета. Поверхности отлично работают, виджеты визуализируются правильно. однако файловая загрузка не работает. функция handlefileupload в backingbean FileUploadController никогда не вызывается. другие компоненты прайс-листов, например, кнопка может вызывать функции в этом компоненте, поэтому она корректно инициализируется. ниже вы найдете нашу конфигурацию. в настоящее время мы развиваемся в eclipse и развертываем веб-приложение с помощью maven и запускаем приложение с причальным сервером непосредственно в eclipse. развертывание .war на tomcat тоже не работало.Spring WebFlow Application + Primefaces, FileUpload не работает, HTTP Error и/или IO Error

Проблема:

  • после выбора файла и нажав на загрузку виджет дает либо сообщение об ошибке «Ошибка ввода-вывода» или «Ошибка HTTP»
  • некоторые данные передаются на сервер (мы понюхал сети
  • handlefileupload() функция движения) в backingbean FileUploadController никогда не называют

зависимости

  • org.primefaces 2.2.RC2
  • org.springframework.webflow, WebFlow и лица 2.2.1.RELEASE
  • Commons-FileUpload 1.2.2
  • Обще-IO 2.0
  • com.sun. лица, апи и осущ 2.0.3
  • org.springframework.security

web.xml

<filter> 
<filter-name>PrimeFaces FileUpload Filter</filter-name> 
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> 
</filter><filter-mapping> 
<filter-name>PrimeFaces FileUpload Filter</filter-name> 
<servlet-name>Faces Servlet</servlet-name> 
</filter-mapping> 

start.xhtml

 <h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
     <p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}" 
    description="Images" /></h:form> 

FileUploadController.java

public void handleFileUpload(FileUploadEvent event) { 
    System.out.println("FileUpload Test"); 

    FacesMessage msg = new FacesMessage("ok", event.getFile().getFileName() + " is uploaded."); 
    FacesContext.getCurrentInstance().addMessage(null, msg); 
} 

бобы-config.xml

<bean id="fileUploadController" class="de.hsrm.mi.media.FileUploadController" scope="session"></bean> 

Спасибо заранее. Мы надеемся, что кто-то может помочь нам :)

ответ

0

Существует и ошибка или вы скопировали его неправильно из вашего файла-х Xhtml

<h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
     <p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}" 
    description="Images" /></h:form> 

функция «{» отсутствует, прежде чем «fileUploadController.handleFileUpload}» должно быть:

<h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
     <p:fileUpload id="fileUp" fileUploadListener="#{fileUploadController.handleFileUpload}" 
    description="Images" /></h:form> 
+0

Спасибо вам ответить, но, к сожалению, что это не так. Это была просто опечатка. –

+0

Попробуйте добавить свой веб-сайт.XHTML: \t <Контекст-пары> \t \t org.apache.myfaces.USE_ENCRYPTION \t \t ложь \t Или, скорее что-то simmilar в Mojarra. Без этого параметра я тоже не могу загрузить файл. У вас есть журнал? В вашем сервере приложений или из log4j? –

2

использовать этот фильтр вместо

<filter> 
    <filter-name>PrimeFaces FileUpload Filter</filter-name> 
    <filter-class> 
     org.primefaces.webapp.filter.FileUploadFilter 
    </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>PrimeFaces FileUpload Filter</filter-name> 
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
</filter-mapping> 
+0

Эта конфигурация необходима для использования с Spring Web Flow. В примере с приложением PrimeFaces используется «Faces Servlet» вместо «Springlet MVC Dispatcher Servlet». Работает только вторая. – TheCoolah

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

  • Нет связанных вопросов^_^