升級到GlassFish 4和JSF 2.2 Primefaces之後FileUploadEvent停止工作。有了JSF 2.1,它沒有任何問題。除了文件上傳之外,一切工作都正常。有什麼我失蹤了嗎?Glassfish 4,JSF 2.2和PrimeFaces FileUploadEvent不能一起工作
GlassFish 4
JSF 2.2
PrimeFaces 3.4.2 and 3.5
Commons io version: 2.4
Commons fileupload version: 1.3
控制器側
public void handleFileUpload(FileUploadEvent event) {
System.out.println("HandleFileUpload");
byte[] file = event.getFile().getContents();
newFieldset.setData(file);
FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
查看
<h:form enctype="multipart/form-data">
<p:fieldset legend="Create new feed" toggleable="true" collapsed="true" >
<p:fileUpload fileUploadListener="#{adminHomeController.handleFileUpload}" style="margin-top: 20px;"
mode="advanced"
update="messages"
sizeLimit="1000000"
multiple="false"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
<p:inputText label="Baslik" style="margin-top: 20px;" required="true" value="#{adminHomeController.newFieldset.legend}" />
<p:editor style="margin-top: 20px;"
value="#{adminHomeController.newFieldset.content}" />
<p:commandButton style="margin-top: 20px;" value="#{msg['common.save']}" update="messages" icon="ui-icon-disk" actionListener="#{adminHomeController.saveFieldset()}"/>
</p:fieldset>
<p:growl id="messages" showDetail="true"/>
</h:form>
我已經工作包括Commons io版本:2.4和Commons fileupload版本:1.3依賴關係,所以情況並非如此。在切換到JSF 2.2之前,文件上傳機制正在工作,現在它根本沒有觸發監聽器功能,也沒有拋出異常。我認爲這是行不通的。 – Pinchy