Jsf 我什么也不做

Jsf 我什么也不做,jsf,upload,primefaces,Jsf,Upload,Primefaces,我现在正在尝试使用primefaces而不是一个自制的文件上传系统,唯一的问题是它似乎什么都不做,你知道为什么吗 我用的是玻璃鱼,我加了 commons-io-1.4.jar commons-fileupload-1.2.1/jar 到我的netbeans库 这是我的xhtml <p:fileUpload fileUploadListener="#{fileUploadController.upload}" mode="a

我现在正在尝试使用primefaces而不是一个自制的文件上传系统,唯一的问题是它似乎什么都不做,你知道为什么吗

我用的是玻璃鱼,我加了

commons-io-1.4.jar commons-fileupload-1.2.1/jar

到我的netbeans库

这是我的xhtml

<p:fileUpload fileUploadListener="#{fileUploadController.upload}"
                                  mode="advanced" 
                                  update="messages"
                                  sizeLimit="100000000" 
                                  allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

                    <p:growl id="messages" showDetail="true"/>
我也试过这个例子:

但问题是,当我复制代码时,我无法获得上传显示

有人知道怎么回事吗


谢谢

您的项目中包含了必要的导入吗?如果我没记错的话,我曾经使用过primefaces upload,我需要为上传的东西包含一个特定的maven依赖项

快速浏览谷歌后:

Commons IO
Commons File Upload
或maven风格:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.1</version>
</dependency>
资源:
好,问题解决了!,使用primefaces时,您必须将过滤器放在第一位,在您可能使用的任何其他过滤器之前(我以前上传的文件中有一个过滤器),因此现在my web.xml看起来像:

<!-- <filter>
            <filter-name>Upload Filter</filter-name>
            <filter-class>richard.fileupload.UploadFilter</filter-class>
            <init-param>
                <param-name>sizeThreshold</param-name>
                <param-value>1024</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>Upload Filter</filter-name>
            <url-pattern>/upload/*</url-pattern>
        </filter-mapping> -->
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>server</param-value>
        </context-param>
        <filter>
            <filter-name>PrimeFaces FileUpload Filter</filter-name>
            <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
            <init-param>
                <param-name>thresholdSize</param-name>
                <param-value>20480</param-value>
            </init-param>
            <init-param>
                <param-name>uploadDirectory</param-name>
                <param-value>C:/Users/Richard/printing~subversion/fileupload/web/WEB-INF/uploaded</param-value>
            </init-param>
        </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>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.xhtml</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>/GUI/index.xhtml</welcome-file>
        </welcome-file-list>
        <context-param>
            <param-name>javax.faces.PROJECT_STAGE</param-name>
            <param-value>Development</param-value>
        </context-param>
        <context-param>
            <param-name>facelets.LIBRARIES</param-name>
            <param-value>/WEB-INF/corejsf.taglib.xml</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
            <param-value>true</param-value>
        </context-param>

javax.faces.STATE_保存方法
服务器
PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
阈值大小
20480
上传目录
C:/Users/Richard/printing~subversion/fileupload/web/web-INF/upload
PrimeFaces文件上载筛选器
Facesservlet
Facesservlet
javax.faces.webapp.FacesServlet
Facesservlet
*.xhtml
/GUI/index.xhtml
javax.faces.PROJECT_阶段
发展
facelets.LIBRARIES
/WEB-INF/corejsf.taglib.xml
javax.faces.explait_EMPTY_STRING_SUBMITTED_VALUES_为_NULL
真的
我注意到的唯一一件事是,它们现在以TMP文件的形式上载,我以后是否仍可以使用此文件进行打印?

编辑

这个问题始于2013年1月,当时只有PrimeFaces 3.5。对于3.5,默认设置为commons fileupload。因此,对于3.5,不需要下面的上下文参数

如果您使用的是PrimeFaces 4,并且存在此问题:

PrimeFaces 4的默认值为“本机”。如果要使用commons fileupload,则需要在
web.xml
中包含此参数:

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>commons</param-value>
</context-param>

primefaces.UPLOADER
平民

对于WebLogic,我使用的是默认设置,但在尝试上载时,什么也没有发生。没有错误。有了Tomcat,这两种方式都很好。我只在Tomcat ant WebLogic上试用过。

谢谢,我已将依赖项添加到我的库中,我正在使用glassfish,因此maven不好:(@user1924104 maven是一款帮助您构建组件的软件,这个答案只是想告诉您应该添加哪些库,但您的项目中有这些库的更高版本。啊,我明白了,谢谢,是的,所有库都是最新的,并且都添加了临时文件。临时文件不一定是供您使用的,而是供primefaces使用的。您期待d检索
FileUploadListener
中的二进制内容,并对其执行所需操作。这是如何回答上述问题的?@Kukeltje编辑了我的答案以澄清问题。该问题特别提到使用commons fileupload。未提供完整的web.xml,因此不清楚是否包含此上下文参数。我需要d该参数使其对我有效。这是对上述问题的回答。如果是你的,请删除你的否决票。如果答案仍然不好,最好先要求澄清,然后再否决。嗯,这是你的意见。如果我没有否决票,通常情况下,改进答案的动机不存在,因此没有什么happens和我需要跟踪在一周内没有任何改善的情况下,后续的否决投票的答案?两周?如果我否决了投票,并且有人改进了该人经常对其发表评论的问题,我会收到通知。然后我可以决定是否取消否决投票。你可能不喜欢这种方式,但这对我来说是最好的方式(我经常发表评论,就像现在我投否决票一样)现在开始讨论这个话题。这个问题是从2013年1月开始的,当时只有PrimeFaces 3.5。上传的默认值是…commons,因此不需要配置它。根据这一点,您的假设是错误的,因此您的答案只有在有人有相同问题但使用更新的PF版本(>=4.0)时才是“有效的”。仍然不是。它将返回到“本机”并会起作用或导致不同的错误。因此,答案很可能是无效的。如果您将所有这些信息添加到答案中,我将删除downvotebtw,请注意,我没有对您的其他类似“答案”进行否决。它们更具体
fileUploadListener="#{uploaderBB.handleFileUpload}"
<!-- <filter>
            <filter-name>Upload Filter</filter-name>
            <filter-class>richard.fileupload.UploadFilter</filter-class>
            <init-param>
                <param-name>sizeThreshold</param-name>
                <param-value>1024</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>Upload Filter</filter-name>
            <url-pattern>/upload/*</url-pattern>
        </filter-mapping> -->
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>server</param-value>
        </context-param>
        <filter>
            <filter-name>PrimeFaces FileUpload Filter</filter-name>
            <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
            <init-param>
                <param-name>thresholdSize</param-name>
                <param-value>20480</param-value>
            </init-param>
            <init-param>
                <param-name>uploadDirectory</param-name>
                <param-value>C:/Users/Richard/printing~subversion/fileupload/web/WEB-INF/uploaded</param-value>
            </init-param>
        </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>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.xhtml</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>/GUI/index.xhtml</welcome-file>
        </welcome-file-list>
        <context-param>
            <param-name>javax.faces.PROJECT_STAGE</param-name>
            <param-value>Development</param-value>
        </context-param>
        <context-param>
            <param-name>facelets.LIBRARIES</param-name>
            <param-value>/WEB-INF/corejsf.taglib.xml</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
            <param-value>true</param-value>
        </context-param>
<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>commons</param-value>
</context-param>