首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PrimeFaces 11丝状体

PrimeFaces 11丝状体
EN

Stack Overflow用户
提问于 2022-07-04 16:42:04
回答 1查看 173关注 0票数 0

我只是试着用primefaces 11运行简单的fileupload。我的身体是:

代码语言:javascript
运行
复制
<h:body>
    <h:form enctype="multipart/form-data">
     <p:fileUpload value="#{fileUploadBean.uploadedFile}" mode="simple" skinSimple="true"/>
        <p:commandButton value="Submit" ajax="false" action="#{fileUploadBean.upload}" styleClass="p-mt-3 ui-button-outlined p-d-block"/>
    </h:form>
</h:body>

我的豆子是

代码语言:javascript
运行
复制
@Component
public class FileUploadBean {

  private UploadedFile uploadedFile;
  private UploadedFiles files;

  public void upload() {
    String fileName = uploadedFile.getFileName();
    String contentType = uploadedFile.getContentType();
    byte[] contents = uploadedFile.getContent(); // Or getInputStream()

  }

  public void uploadMultiple() {
    System.err.println("uploadMultiple");
    if (files != null) {
      for (UploadedFile f : files.getFiles()) {
        FacesMessage message = new FacesMessage("Successful", f.getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, message);
      }
    }
  }

  public void handleFileUpload(FileUploadEvent event) {
    UploadedFile uploadedFile = event.getFile();
    System.err.println(uploadedFile.getFileName());
    FacesMessage message =
        new FacesMessage("Successful", event.getFile().getFileName() + " is uploaded.");
    FacesContext.getCurrentInstance().addMessage(null, message);
  }

  public UploadedFile getUploadedFile() {
    return uploadedFile;
  }

  public void setUploadedFile(UploadedFile uploadedFile) {
    this.uploadedFile = uploadedFile;
  }

  public UploadedFiles getFiles() {
    return files;
  }

  public void setFiles(UploadedFiles files) {
    this.files = files;
  }
}

我把这个添加到web.xml中

代码语言:javascript
运行
复制
<context-param>
        <param-name>primefaces.UPLOADER</param-name>
        <param-value>auto</param-value>
    </context-param>

    <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>
<servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map these files with JSF -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

问题是“上传”功能没有触发。如果我删除enctype="multipart/form-data“部件"upload”函数是触发的,但是uploadedFile字段是空的。

此外,我尝试了所有的例子在primefaces演示页面,没有任何工作。

有人知道吗?我找不到任何使用primefaces 11的答案。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-05 08:48:33

@Component是来自Spring上下文的注释。如果您尝试在JSF和PrimeFaces中使用Spring,我建议您使用Joinfaces。这是一个带有文件上传的工作实例

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72859841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档