【发布时间】:2014-03-21 17:27:25
【问题描述】:
我正在使用 Primefaces 4.0 在 Apache Tomcat 7 上运行一个 web 应用程序。 尝试实现类似于 Primefaces ShowCase 的上传接口,上传接口不会触发 backing bean 中的任何函数:
这是我直接在正文中包含的内容(我也尝试过不使用“multiple”、“value”、高级模式、“actionListener”属性)
<p:fileUpload id="fileupload_"
value="#{userWizard.fu.uploadedFile}"
fileUploadListener="#{userWizard.fu.addFileToAttachment}"
actionListener="#{userWizard.fu.listener}"
mode="advanced"
dragDropSupport="false"
update="messages"
multiple="false"
sizeLimit="50000000"
fileLimit="3"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
auto="true"/>
<p:growl id="messages" showDetail="true" />
这是我的支持 bean:
import java.util.LinkedList;
import java.util.List;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
@ManagedBean
@SessionScoped
public class FileUpload {
private UploadedFile uploadedFile;
List<UploadedFile> files = new LinkedList<UploadedFile>();
public FileUpload()
{}
public List<UploadedFile> getFiles() {
System.out.println( "< getFiles > ");
return files;
}
public void setFiles(List<UploadedFile> files) {
System.out.println( "< setFiles > ");
this.files = files;
}
public void addFileToAttachment(FileUploadEvent event)
{
System.out.println("addfile");
System.out.println( "upload > " + event.getFile().getFileName());
files.add(event.getFile());
}
public UploadedFile getUploadedFile() {
System.out.println( "< getFile > ");
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
System.out.println( "< setFile > ");
this.uploadedFile = uploadedFile;
}
public void listener(ActionEvent ae)
{
System.out.println("listener");
}
public void insert()
{
System.out.println( "insert");
if(uploadedFile !=null)
{
System.out.println( " > " + uploadedFile.getFileName());
}
}
}
我在我的网页上看到了上传界面,并且文件似乎已上传,但没有一个侦听器/设置器 println 打印在我的输出上。我的 FileUpload bean 中带有其侦听器的常规命令按钮会正常触发它。
使用 Primefaces 4.0,我没有在 web.xml 文件中添加 FileUpload 过滤器(我也尝试添加它以防万一,但效果并不好)。
另外,commons-fileupload-1.3.1.jar 和 commons-io-2.4.jar 在我项目的库中。
有人知道我的问题可能出在哪里吗?
谢谢
【问题讨论】:
-
其实有几个步骤可以实现。请按照上面的视频教程或谷歌搜索更多信息。
标签: java jsf jakarta-ee primefaces