相关疑难解决方法(0)

如何使用PrimeFaces p:fileUpload?从不调用Listener方法或者UploadedFile为null /抛出错误/不可用

我正在尝试使用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.

jsf file-upload primefaces jsf-2

98
推荐指数
3
解决办法
14万
查看次数

文件上传不适用于PrimeFaces 4.0/JSF 2.2.x中的AJAX - javax.servlet.ServletException:请求内容类型不是multipart/form-data

重要提示:此线程中讨论的问题已于2014年10月6日星期一(几分钟前)发布PrimeFaces 5.1 final(社区发布)中得到修复.我尝试了JSF 2.2.8-02(或api,impl).

因此,如果您碰巧使用该版本(或更高版本,无需提及),您甚至不需要再阅读此问题了.


我正在运行一个Web应用程序

  • GlassFish 4.0
  • Mojarra 2.2.4
  • PrimeFaces 4.0决赛

除了使用AJAX上传文件外,其他一切都运行良好.以下xhtml文件通过PrimeFaces命令按钮触发的AJAX请求发送多部分内容.

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Test</title>
    </h:head>
    <h:body>
        <h:form prependId="true" enctype="multipart/form-data">
            <p:fileUpload id="txtCatImage"
                          value="#{testManagedBean.uploadedFile}"
                          mode="advanced"
                          dragDropSupport="true"
                          fileLimit="1"
                          sizeLimit="100000"
                          multiple="false"
                          allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
                          fileUploadListener="#{testManagedBean.fileUploadListener}"/>

            <p:message for="txtCatImage" showSummary="false"/>
            <p:commandButton id="btnSubmit" 
                             actionListener="#{testManagedBean.insert}" 
                             ajax="true" icon="ui-icon-check" value="Save"/>                
        </h:form>
    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

测试托管bean:

@ManagedBean
@ViewScoped
public final class TestManagedBean implements Serializable {

    private static final long serialVersionUID = …
Run Code Online (Sandbox Code Playgroud)

jsf primefaces jsf-2.2 glassfish-4

28
推荐指数
3
解决办法
5万
查看次数

标签 统计

jsf ×2

primefaces ×2

file-upload ×1

glassfish-4 ×1

jsf-2 ×1

jsf-2.2 ×1