2017-05-09 61 views
1

我已經在我的代碼添加primeFaces的FileUpload上,它能正常工作的WebLogic 12.2服務器上但是,當我改變了服務器wildFly 10.0.1的文件上傳監聽器不調用了我不知道是什麼原因和無效的尋找這個問題。Primefaces文件上傳監聽器不調用wildfly服務器

也就是說在web.xml

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

過濾器這就是我的XHTML代碼

<p:column headerText="#{msgs.label_uploadFile}" > 
    <p:fileUpload id="upload" label="#{msgs.label_uploadFile}" 
    fileUploadListener="#{attachmentsInquiryBean.handleFileUpload}" 
    mode="advanced" auto="true"/> 
</p:column> 

也就是說

public void handleFileUpload(FileUploadEvent event) { 
    // do something 
} 

而且我加了兩個罐子在監聽功能叫我wWEB-INF/lib文件夾:

公地文件上傳-1.3.jar

公地IO-2.4.jar

回答

0

下面是如何使用primefaces上傳文件的例子,你不需要公地文件上傳-1.3.1.jar和公地-IO-2.4.jar;而且你不需要改變web.xml文件,以瞭解更多信息請參閱本How to upload file in primefaces

java代碼:

import javax.faces.application.FacesMessage; 
import javax.faces.bean.ManagedBean; 
import javax.faces.context.FacesContext; 
import org.primefaces.model.UploadedFile; 
@ManagedBean 
public class FileUploadView { 
    private UploadedFile file; 
    public UploadedFile getFile() { 
     return file; 
    } 
    public void setFile(UploadedFile file) { 
     this.file = file; 
    } 
    public void upload() { 
     if(file.getSize() > 0) { 
      FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded."); 
      FacesContext.getCurrentInstance().addMessage(null, message); 
     } 
else{ 
    FacesMessage message = new FacesMessage("Not Succesful", "file is not uploaded"); 
      FacesContext.getCurrentInstance().addMessage(null, message); 
} 
    } 
} 

XHTML代碼:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>Facelet Title</title> 
    </h:head> 
    <h:body> 
<h:form enctype="multipart/form-data"> 
    <p:growl id="messages" showDetail="true" /> 

    <p:fileUpload value="#{fileUploadView.file}" mode="simple" skinSimple="true"/> 

    <p:commandButton value="Submit" ajax="false" actionListener="#{fileUploadView.upload}" /> 
</h:form> 
    </h:body> 
</html> 
+0

謝謝,此代碼工作正常在WebLogic但wildFly服務器沒有。 – Esraa

0

我見過Wildfly相同10.x與PF 6.1。

fileUpload.getFileUploadListener() is null上Wildfly的方法表達。

我的解決方法是使用FileUpload部件上的結合和手動設定有效的方法表達。爲您的操作,但仍無法調用的ActionListener功能