Jsf 使用richfaces上载文件的步骤

Jsf 使用richfaces上载文件的步骤,jsf,file-upload,richfaces,Jsf,File Upload,Richfaces,在RichFaces中,为了上传文件,我使用了rich:fileUpload。通过使用rich:fileUploadAdd、Upload和Clear在richfaces livedemo示例中自动生成所有按钮,但对于我来说,Add、Upload和Clear All在我的浏览器中显示为文本,我应该在哪里更改,以便可以单击Add、Upload和clearAll。我是否必须更改web.xml/pom.xml文件中的任何设置 我正在使用RichFaces4和JSF2 这是我的web.xml: &

在RichFaces中,为了上传文件,我使用了
rich:fileUpload
。通过使用
rich:fileUpload
Add、Upload和Clear在richfaces livedemo示例中自动生成所有按钮,但对于我来说,Add、Upload和Clear All在我的浏览器中显示为文本,我应该在哪里更改,以便可以单击Add、Upload和clearAll。我是否必须更改
web.xml
/
pom.xml
文件中的任何设置

我正在使用RichFaces4和JSF2

这是我的web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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>Sample RichFaces 4 Application</display-name>
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.SKIP_COMMENTS</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.skin</param-name>
    <param-value>#{skinBean.skin}</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.fileUpload.maxRequestSize</param-name>
    <param-value>1000000000</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.fileUpload.createTempFiles</param-name>
    <param-value>true</param-value>
</context-param>
<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<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>
<session-config>
    <session-timeout>30</session-timeout>
</session-config>
<mime-mapping>
    <extension>ecss</extension>
    <mime-type>text/css</mime-type>
</mime-mapping>
<welcome-file-list>
    <welcome-file>index.jsf</welcome-file> 
</welcome-file-list>
<login-config>
    <auth-method>BASIC</auth-method>
</login-config>
非常感谢。现在我不再犯那个错误了。 我在web.xml中将createTemp文件设置为true,但在本地系统的temp文件夹中找不到上载的文件。是否可以通过更改web.xml文件中的任何设置将上载的文件存储到本地系统中所需的位置?
请在这两个问题上提供帮助。

关于您的按钮图标问题,我很确定您没有管理RichFaces的皮肤,因此您可以从
web.xml
中删除它:

<context-param>
    <param-name>org.richfaces.skin</param-name>
    <param-value>#{skinBean.skin}</param-value>
</context-param>
应替换为:

import org.richfaces.event.FileUploadEvent;
import org.richfaces.model.UploadedFile;
其他信息:


您所基于的示例来自RichFaces 3.3.3(如页脚所示)。以RichFaces 4.3.2为例,仔细检查您的视图代码。RichFaces 4.0.0和spring 4也存在此问题。上传文件时,我总是收到这样的错误消息“无法读取请求序言”

我通过将multipart Resollever设置为 而不是CommonsMultipartResolver 为调度员服务。因为spring的CommonsMultipartResolver与richface 4.0.0不一致


希望这有帮助

Richfaces版本/JSF版本是什么?你的web.xml在哪里?你能发布你的视图代码(rich:fileUpload)和与之相关的bean代码吗?@Padmini你应该用这些信息更新你的问题。@Padmini更新的答案,现在应该可以了,我已经用你的代码进行了测试,我只是更改了你的导入以使其正常工作。@Padmini这样文件就可以上传了吗?是的,文件正在上传。但我的要求是将上传的文件存储在本地系统中。你能帮我怎么做吗?如果这个答案修复了你的问题,你应该标记为已回答,并将其作为新问题发布,因为这是一个问题新的。
package com.acc.upload;

public class File {

private String Name;
private String mime;
private long length;
private byte[] data;
public byte[] getData() {
    return data;
}
public void setData(byte[] data) {
    this.data = data;
}
public String getName() {
    return Name;
}
public void setName(String name) {
    Name = name;
    int extDot = name.lastIndexOf('.');
    if(extDot > 0){
        String extension = name.substring(extDot +1);
        if("png".equals(extension)){
            mime="image/png";
        }else {
            mime = "img/unknown";
        }
    }
}
public long getLength() {
    return length;
}
public void setLength(long length) {
    this.length = length;
}

public String getMime(){
    return mime;
}
}
<context-param>
    <param-name>org.richfaces.skin</param-name>
    <param-value>#{skinBean.skin}</param-value>
</context-param>
import com.acc.fileupload.utils.FileUploadEvent;
import com.acc.fileupload.utils.UploadedFile;
import org.richfaces.event.FileUploadEvent;
import org.richfaces.model.UploadedFile;