Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf PrimeP:fileupload组件问题_Jsf_Facelets_Primefaces - Fatal编程技术网

Jsf PrimeP:fileupload组件问题

Jsf PrimeP:fileupload组件问题,jsf,facelets,primefaces,Jsf,Facelets,Primefaces,我使用的是Primefaces 2.0.1,但FileUpload组件工作不正常。它在幕后使用JQuery uploadify。这是我的web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

我使用的是Primefaces 2.0.1,但FileUpload组件工作不正常。它在幕后使用JQuery uploadify。这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">

    <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>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>


    <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/primefaces_resource/*</url-pattern>
    </servlet-mapping>



    <welcome-file-list>
        <welcome-file>index.jsf</welcome-file>
    </welcome-file-list>
</web-app>

该文件在/tmp中正确上载,但在浏览器中总是显示HTTP错误。请帮帮我。它过去一直工作到昨天。但是今天我重新安装了Glassfish,它已经停止工作。

我也遇到了一些问题。我似乎记得,通过向fileUpload组件和/或表单添加id,事情开始对我起作用。值得一试。

我认为您的h:form标记中缺少enctype=“multipart/form data”。

我也有同样的问题。请注意,通过从我的浏览器firefox中删除cookie并上传我的应用程序,它成功了。

我使用的是PRIMEFACES 2.2.1,但问题仍然存在:使用Chrome或firefox时出现HTTP错误;在我的例子中,这显然是因为反向代理屏蔽了运行应用程序的实际服务器。如果应用程序是通过直接URL引用使用的(http://server:port/some (路径),工作正常;如果使用反向代理URL,则请求将失败。我不知道为什么这在FF和GC中失败,而在IE中却不行。

需要在web.xml中添加一个过滤器。因此,将这些行添加到web.xml


PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
阈值大小
51200
上传目录
/tmp
PrimeFaces文件上载筛选器
Facesservlet
为了能够使用Primefaces fileUpload组件,还需要添加一些Apache Commons依赖项:


文件上传
文件上传
1.2.1
org.apache.commons
公地io
1.3.2

嗨,凯尔,我完全按照你说的做了,它开始工作了。然后我删除了id,它仍然在工作!!然后我注销,再次登录,重新启动Glassfish和Netbeans,它仍然可以工作。不知道明天会发生什么。我将让您了解更多有关此组件的信息。这是非常不可靠的。它甚至不让我们知道错误在哪里。它能给出的最好的结果是“HTTP错误”,但它甚至不让我们知道错误在哪里,有什么异常。我们只能在黑暗中继续拍摄。你不会相信我昨天花了12个小时试图弄明白为什么我现有的代码停止工作了。我甚至没有对它做任何字符更改。我刚刚安装了Glassfish V3。可能是玻璃鱼和闪光的问题。不知道,但今天它的心情很好,所以它的工作,但我仍然不知道HTTP错误的确切原因。在Primefaces论坛上似乎也没有人回复。你知道如何解决你的问题了吗?看看这个链接。在文件上传部分的Primfaces文档中,应提及此链接的可能副本。非常感谢。这是一个技术性的回答。他点击了“发布你的答案”——这显然是他对这个问题的回答。这确实不是一个好答案。我还不能投反对票。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form prependId="false">
            <h:commandButton actionListener="#{NewJSFManagedBean.add}" value="add"/>
            <p:fileUpload auto="false" widgetVar="fileUpl" fileUploadListener="#{NewJSFManagedBean.saveFile}"/>

        </h:form>
    </h:body>
</html>
primefaces 2.0.1
commons-beanutils
commons-beanutils-bean-collection
commons-digestor
commons-fileUpload
commons-io
commons-logging
jhighlight
<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>51200</param-value>
 </init-param>
 <init-param>
  <param-name>uploadDirectory</param-name>
  <param-value>/tmp</param-value>
 </init-param>
</filter>
<filter-mapping>
 <filter-name>PrimeFaces FileUpload Filter</filter-name>
 <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>1.2.1</version>
</dependency>
<dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-io</artifactId>
 <version>1.3.2</version>
</dependency>