FileDownload и FileUpload JSF Primefaces не работают

используя PrimeFaces 3.1.2, NetBeans 7.2, JSF 2.1 и GlassFish 3.1.2.I '

м с использованием фактического кода, который я получил отhttp://www.primefaces.org/showcase/ui/fileUploadAuto.jsf а такжеhttp://www.primefaces.org/showcase/ui/fileDownload.jsf.

Когда я запускаю код загрузки файла, он нене работает вообще. Файл неt загружен и сообщение об успехе не отображается. Но если размер файла превышает указанный размер, отображается сообщение о том, что размер файла слишком велик.

Вот мой взгляд:




    
    
    
        
            
            
        
    

Вот мой боб:

package com;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.FileUploadEvent;

@ManagedBean
@SessionScoped
public class FileUploadController {
    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage msg = new FacesMessage("Succesful",   event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }
}

В основном это тот же код на странице демонстрации PrimeFaces.

Аналогично с кодом загрузки файла; когда я нажимаю на загрузку ничего не происходит. Всплывающее окно открывается и закрывается, прежде чем я мог заметить это. У меня есть файл изображения на месте, как упомянуто в потоке получения ресурсов (для части загрузки), но я нене знаю чтоС проблемой. Код также в основном такой же, как на демонстрационной странице PrimeFaces.

Я нея не вижу никаких журналов или ошибок в Glassfish в Netbeans. Я тоже нене знаю, как включить ведение журнала при необходимости.

 Mitra20 нояб. 2012 г., 12:12
@AlexandreLavoie Привет, Алекс, я не думаю, что тебе нужен файл с конфигурацией лиц в JSF 2.1. Поправь меня, если я ошибаюсь в этом общем примере.
 Alexandre Lavoie20 нояб. 2012 г., 11:41
Как упомянул @Askel Willgert, объявлен ли ваш bean-компонент в face-config.xml?
 iltaf khalid24 янв. 2013 г., 07:11
использовать prependId = "ложный" как атрибут формы. Я использовал это, и это сработало ...
 Alexandre Lavoie20 нояб. 2012 г., 12:15
Конечно, ты неМне это не нужно, но мы не видим никаких аннотаций, поэтому я подумал, что, возможно, ваш bean-компонент был сконфигурирован в face-config.

Ответы на вопрос(3)

Одна вещь, которую я заметил, это то, что если вы неположить внутри тега "allowTypes» регулярное выражение правильно, "файл загружен" элемент не запускает действие, создавая впечатление, что действие недоступно.

Я знаю, что сейчас это не ваша проблема, но я думаю, что важно делиться этой информацией.

Чтобы иметь возможность использовать bean-компонент из xhtml, вам нужно аннотировать ваш контроллер как @ManagedBean и установить некоторую область видимости. Предпочтительно в этом случае @ViewScoped или @RequestScoped.

пример:

@ManagedBean
@ViewScoped
public class FileUploadController {

    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage msg = new FacesMessage("Succesful",     event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }
}

Узнайте больше о том, как JSF управляемые бины работают здесь:http://www.mkyong.com/jsf2/configure-managed-beans-in-jsf-2-0/

 Mitra20 нояб. 2012 г., 12:10
Здравствуйте, Аксель, я обновил пост, который я пытался с помощью управляемого, и сессия все еще не меняется немного, и есть ли какие-либо зависимости, которые я должен добавить помимо основного JSF, я добавил только основные версии 3.4.2 jar
Решение Вопроса

Первое, что вам нужно, это добавить несколько библиотек в ваше приложение. На самом деле загрузка файлов PrimeFaces зависит от библиотек Apache commons-file-upload и commons-io. Поэтому загрузите их и добавьте в свой путь WEB-INF / lib:

Вы можете скачать его по следующей ссылке.

http://commons.apache.org/io/

http://commons.apache.org/fileupload/

кроме того, вы должны настроить его в web.xml


  PrimeFaces FileUpload Filter
  org.primefaces.webapp.filter.FileUploadFilter
  
    thresholdSize
    51200
  
  
    uploadDirectory
    C:\etc
   


  PrimeFaces FileUpload Filter
  Faces Servlet

Также, если вы хотите установить программно изменить место назначения ваших загруженных файлов, посмотрите:

Загрузка файла с помощью PrimeFaces FileUpload

 KSHiTiJ21 нояб. 2012 г., 08:41
Спасибо, Балус. в спешке я забыл показать это отображение.
 Mitra21 нояб. 2012 г., 05:54
Спасибо, balus, это сработало после добавления сопоставления фильтров. Большое спасибо.
 BalusC20 нояб. 2012 г., 13:20
Отображение фильтра отсутствует в этом ответе. Вы добавили это? Это'Все подробно описано в PrimeFaces user 'руководство Смотрите такжеstackoverflow.com/questions/8875818/...
 Mitra20 нояб. 2012 г., 12:52
НЕТ УДАЧИ Кшитидж добавил следующие jars commons-io-2.4.jar, commons-io-2.4-sources.jar, commons-fileupload-1.2.2.jar вместе с простыми гранями, а также обновил web.xml на основе вашего кода Также я не вижу никакой трассировки стека, по крайней мере, отладки, есть способ напечатать его

Ваш ответ на вопрос