PrimeFaces <p:fileUpload>向支持bean返回null

问题描述

我实际上是在开发 我的第一个Java Enterprise项目 ,并且正在尝试实现允许 文件上传的功能。 来自 PrimeFaces

我的 <h:form> 的结构如下:

<h:form enctype="multipart/form-data">
    <p:growl id="messages" showDetail="true" sticky="true"/>
    <p:fileUpload value="#{fileUploader.file}" mode="simple" />
    <p:commandButton value="Submit" action="#{fileUploader.upload()}" ajax="false" 
                                     update="messages" />
</h:form>

支持bean 包含以下代码:

package it.micra.prova1.bean;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;

import org.primefaces.model.UploadedFile;

@ManagedBean(name="fileUploader")
@SessionScoped
public class FileBean {

    private UploadedFile file;
    
    @PostConstruct
    public void postConstruct() {
        
    }
    
    public UploadedFile getFile() {
        return file;
    }
 
    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public void upload() {
        FacesContext context = FacesContext.getCurrentInstance();            

        if (file != null) {
            System.out.println("file uploaded correctly");
            context.addMessage(null,new FacesMessage("Success!","File uploaded correctly!"));
        } else {
            System.out.println("file not uploaded correctly");
        }
    }
    
}

我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>Prova1Web</display-name>
    <context-param>
        <param-name>primefaces.UPLOADER</param-name>
        <param-value>auto|native|commons</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>
            #{themeSwitcher.selectedTheme.value}
        </param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
</web-app>

我的应用程序的这一小部分应允许用户通过<p:fileUpload>上传文件,该文件的值绑定到备用bean中的属性private UploadedFile file;。之后,用户可以使用<p:commandButton>验证上载,该private UploadedFile file;从备用bean fileUploader 中调用方法。 然后,该方法将检查属性FacesMessage,以查看是否上传了任何文件。

请注意,此方法目前仅应在控制台中发送一条消息,说明文件是否正确上传,如果正确上传,则还应该向上下文中添加新的<p:growl>稍后将由<p:fileUpload>标签显示,该标签在提交新闻时会 更新

最后的问题是.a { display: flex; flex-wrap: wrap; justify-content: space-around; } .b { background-color: #F6E0E0; width: 105px; height: 80px; }总是返回 null 值,否则它永远不会假设任何导致相同结果的值。

>

如果您能帮助我,我将不胜感激,如果问题尚不清楚,请告诉我。

提前谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...