Неизвестная ошибка свойства в Primefaces FileUpload - PullRequest
1 голос
/ 01 февраля 2012

Я использую PF 3.0.RC1 / NetBeans 7.0.1, и когда я пытаюсь установить fileUploadListener для компонента fileUpload, NetBeans выдает это предупреждение «Неизвестное свойство handleFileUpload» в крайнем левом углу строки.

При отладкеВ режиме, когда я использую fileUpload, он не вызывает метод handleFileUpload, и ничего не происходит.

Что я могу сделать для этой проблемы?

Код на странице xhtml:

 <p:fileUpload fileUploadListener="#{BDS_System.handleFileUpload}" mode="advanced" 
                        sizeLimit="500000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

Код в управляемом компоненте:

public void handleFileUpload(FileUploadEvent event) {
        String fileName = event.getFile().getFileName();
        byte[] fileBytes = event.getFile().getContents();

        ...
    }

Решено и решение:

Добавление

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

и две библиотеки, общие-fileupload и commons-io. Для maven проектов;

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId> commons-fileupload</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId> commons-io</artifactId>
        <version>2.1</version>
    </dependency>

1 Ответ

1 голос
/ 02 февраля 2012

я думаю, что это так же, как в BalusC ответ в этой теме: "Неизвестное свойство" сообщение об ошибке NetBeans является ерунда, я думаю, вы что-то забыли в конфигурации загрузки файла, как

Начало работы с FileUpload

Первое, что нужно сделать, это настроить фильтр загрузки файлов, который анализирует многочастный запрос. Фильтр FileUpload должен соответствовать сервлету Faces.

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

и обязательно добавьте enctype к вашей форме, например так:

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

если все вышеперечисленное не поможет, взгляните на ответ BalusC здесь: Как использовать PrimeFaces p: fileUpload

...