我正在尝试使用PrimeFaces上传文件,但fileUploadListener
上传完成后不会调用该方法.
这是观点:
<h:form>
<p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced"
update="messages"
sizeLimit="100000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
<p:growl id="messages" showDetail="true"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)
还有豆子:
@ManagedBean
@RequestScoped
public class FileUploadController {
public void handleFileUpload(FileUploadEvent event) {
FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在方法上放置了一个断点,但它从未调用过.当使用mode="simple"
和时ajax="false"
,它已被调用,但我希望它在高级模式下工作.我正在使用Netbeans和Glassfish 3.1.
我尝试过以下解决方案: Primefaces FileUpload with PrettyFaces和JSF 2.2.3
但它不适用于少数文件(在tomcat 7.0.50下测试).
其中一个文件是:http: //ftp.carnet.hr/misc/apache//xerces/j/source/Xerces-J-src.2.11.0-xml-schema-1.1-beta.zip
有人为这个问题找到了更好的解决方案(除了删除urlmapping)吗?
编辑:没有错误/异常抛出!文件显示在PrimeFaces FileUpload中,但是不会触发监听器!JSF2.2 inputFile也不起作用!