2

を使用していますp:fileUploadが、使用すると fileUploadListener が呼び出されませんmode="simple"。シンプルモードで fileUploadListener を使用する方法はありますか?

<p:fileUpload id ="uploading"
              fileUploadListener="#{workflowActionTemplate.handleFileUpload}"
              mode="simple" 
              update="messages"
              sizeLimit="100000" 
              allowTypes="/(\.|\/)(gif|jpe?g|png|pdf)$/"
              multiple="true"/>

プライム面: 3.2

以下の設定を行いました。何か不足している場合はお知らせください。

web.xml:

<!-- File Upload filter -->
<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>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>

pom.xml:

<!-- Dependancy for file upload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.2</version>
</dependency>

リスナー方法:

public void handleFileUpload(FileUploadEvent event) {
  FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); System.out.println("msg : "+ msg);
  uploadedFile = event.getFile();
}

--

fileUploadListener の代わりに value 属性を使用し、ファイルをアップロードしないと、fileUpload 属性が設定されないため、次のエラーが発生します。

javax.faces.component.UpdateModelException: javax.el.ELException: /search/workflowAction.xhtml @181,104 value="#{workflowActionTemplate.uploadedFile}": Can't set property 'uploadedFile' of type 'org.primefaces.model.UploadedFile' on class 'com.principal.nq.statements.search.WorkflowActionTemplate$$EnhancerByCGLIB$$6ebcb7eb' to value ''

アップデート

fileUploadListener が機能していないため、次の方法で ajax 呼び出しを使用してファイルの値を更新しようとしていました。しかし、f:ajaxPrimefacesp:fileUploadコンポーネントを実行することはできません。私も試してみましp:ajaxたが、それもうまくいきません。

<p:fileUpload id="uploading"
              value="#{workflowActionTemplate.uploadedFile}"
              mode="simple"
              update="messages"
              sizeLimit="100000" 
              allowTypes="/(\.|\/)(gif|jpe?g|png|pdf)$/"
              auto="true"/>
<p:growl id="messages" showDetail="true"/>
<h:commandButton id="uploadDocument" styleClass="continuebutton" value="#{msg.upload}" action="#{workflowActionTemplate.uploadParticipantCustomDoc}">
  <f:ajax execute="uploading" render="uploadDocumentDlg" onevent="onAjaxUploadCustomDoc"/>
</h:commandButton>
4

1 に答える 1