Pengendali unggahan file Primefaces 4 tidak dipanggil [duplikat]

Pertama-tama, saya harus mengatakan, bahwa saya telah membaca semua (setidaknya banyak :)) pertanyaan di sini dan di forum primefaces tentang masalah pengunggah file.

Konfigurasi saya:

Wajah Utama 4

JSF 2.2

Musim semi

Apache Tomcat 7

Maven

Saya mengonversi proyek richfaces menjadi primefaces, dan saya terjebak dengan komponen fileUpload yang tidak memanggil metode handler.

Saya telah mencoba (meskipun saya tahu bahwa dari Primefaces 4 tidak perlu) memasang filter di web.xml. Saya juga sudah mencoba tanpa filter. Saya memiliki filter keamanan pegas dan filter bahasa, tetapi PF adalah yang pertama. Saya juga mencoba mengatur operator ke FORWARD.

Saya memiliki semua dependensi yang diperlukan di Maven (yang umum - saya tahu bahwa dari versi 4 itu tidak diperlukan, namun demikian saya mencobanya)

Bagian xhtml:

<h:form enctype="multipart/form-data">

        ... /* not relevant code here */ ...

                            <p:graphicImage value="#{systemParamsController.image}"
                                id="logo" />

                            <p:fileUpload
                                fileUploadListener="#{systemParamsController.listener}"
                                fileLimit="1" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
                                uploadLabel="#{msg['button.upload.jpg']}"
                                cancelLabel="#{msg['button.cancel']}"
                                invalidFileMessage="alert('#{msg['upload.invalidtype']}');"
                                update="logo" mode="advanced">
                            </p:fileUpload>
                            <p:growl id="messages" showDetail="true" />
                        </h:panelGrid>
                    </h:panelGroup>
                    <p:commandButton value="#{msg['button.save']}" onclick="this.disabled=true"  oncomplete="this.disabled=false"
                        action="#{systemParamsController.save}" styleClass="qs-button"
                        ajax="false" />
                </h:panelGrid>
            </p:panel>
        </center>
    </h:form>

Kacang pendukung:

public synchronized void listener(FileUploadEvent event) throws Exception {
  logger.debug("uploadListener!");
  UploadedFile item = event.getFile();
  getModel().getCustomer().setLogo(imageResizer.doResize(item.getContents(), 30, Side.HEIGHT));
}

Jika saya mengklik pilih, saya dapat memilih file, tetapi setelah itu tidak terjadi apa-apa. Handler tidak dipanggil, karena tidak ada pesan log, tombol upload file tidak aktif. Saya telah menggunakan komponen ini sebelumnya untuk masalah yang lebih kompleks tanpa masalah, jadi saya yakin saya melewatkan sesuatu yang jelas.

Terima kasih sebelumnya atas bantuan apa pun!


person omniflash    schedule 08.01.2014    source sumber
comment
Buka konsol Javascript favorit Anda...apakah ada kesalahan yang berarti? Apa ruang lingkup Anda mendukung bean?   -  person elbuild    schedule 08.01.2014
comment
:) Tidak dapat mengungkapkan rasa terima kasih saya dengan cukup atas petunjuk konsol js...Ada kesalahan sintaksis pada teks pengganti di invalidFileMessage... Terima kasih banyak!   -  person omniflash    schedule 08.01.2014


Jawaban (1)


Pastikan Anda memiliki Filter FileUpload PrimeFaces sebagai filter pertama di web.xml Anda:

<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>

Jika Anda mengalami masalah dengan pengunggah primefaces default, Anda dapat mencoba pengunggahan file commons:

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>commons</param-value>
</context-param>

Kami menggunakan ketergantungan Maven ini:

<dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId>commons-fileupload</artifactId>
   <version>1.3.1</version>
</dependency>

Coba juga letakkan file yang diunggah dalam bentuknya sendiri.

person awilkinson    schedule 18.09.2015