Uncaught typeerror: this.jq.fileupload не является функцией в prime faces 4.0 при использовании mode = "advance" загрузчика файла ajax.

Я использовал версию jsf 2.2.x и primefaces 4.0. Я также использовал версии jquery, такие как 1.10.1 и 2.1.4

<h:form id="uploadForm" enctype="multipart/form-data">
        <p:fileUpload fileUploadListener="#{bean.handleFileUpload}"
                      mode="advanced" dragDropSupport="false"
                      update="messages"
                      sizeLimit="10000000"
                      fileLimit="3"
                      allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />

        <p:growl id="messages" showDetail="true" />
</h:form>

а также я использую заголовки, как показано ниже.

<h:head>
    <title><h:outputText value="#{userBean.title}"/> - Dashboard</title>
    <meta http-equiv="keywords" content="xyz"/>
    <meta http-equiv="description" content="Dashboard"/>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
</h:head>

Между тегами заголовка нет никаких других ссылок или тегов сценария. только теги стиля.

web.xml

<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>bootstrap</param-value>
</context-param>
<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>commons</param-value>
</context-param>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/</url-pattern>
</servlet-mapping>
<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
    <init-param>
        <param-name>thresholdSize</param-name>
        <param-value>51200</param-value>
    </init-param>
    <init-param>
        <param-name>uploadDirectory</param-name>
        <param-value>/tmp/</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

Bean.java

@ManagedBean(name = "bean")
@ViewScoped
public class Bean {
    public void handleFileUpload(FileUploadEvent event) {
        System.out.println("invoked");
        FacesMessage message = new FacesMessage("Succesful", 
        event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
}

приведенный выше код извлекается из всего кода. пожалуйста, помогите мне решить эту проблему. спасибо!

Работает, если еще добавить на страницу p:inputText? Или есть другие предыдущие ошибки?

Kukeltje 26.10.2018 08:57

да. Я также использую p:inputText. Он также успешно вызывает методы bean. но когда я использую p:fileUpload, он никогда не вызывал методы резервного bean-компонента, и файл не загружался куда-либо. в лог-файле ошибок нет

Vidurajith Darshana 26.10.2018 09:38

@Kukeltje, у вас есть идеи по этому поводу? Если у вас есть идеи, вы можете мне помочь?

Vidurajith Darshana 26.10.2018 11:40

Вы вручную включаете файл jquery js где-нибудь? И попробуйте сделать минимальный воспроизводимый пример и попробуйте (просто попробуйте) с минимальный воспроизводимый пример, если он работает с более новой версией PF.

Kukeltje 26.10.2018 12:01

Спасибо, парень ... Ты классный, и еще раз спасибо за эту идею. Теперь она отлично работает!

Vidurajith Darshana 26.10.2018 14:16
0
5
583
0

Другие вопросы по теме