为什么我不能从JSF2页面访问托管bean方法?

时间:2011-06-20 13:42:30

标签: file-upload jsf-2 richfaces listener

<rich:popupPanel />我有一个<rich:fileUpload />fileUploadListener定义为#{assemblyMB.listener}。此侦听器方法在托管bean上定义为:

public void listener(FileUploadEvent event) throws Exception {
    System.out.println("listener");
}
我在JSF页面上的

<rich:fileUpload id="popupFileUpload"
    fileUploadListener="#{assemblyMB.listener}"
    onuploadcomplete="#{rich:component('popup')}.hide(); return false;"
</rich:fileUpload>

在托管bean上,我已经声明了注释@ManagedBean(name =“assemblyMB”)。

我打算在上传文件时访问托管bean上的方法,但我没有这样做。我不明白为什么会这样。

有人可以在这里给我一个灯吗?提前谢谢,

gtludwig

1 个答案:

答案 0 :(得分:0)

假设RichFaces 4.0,您需要确保将父<h:form>设置为将请求正文编码为multipart/form-data

<h:form enctype="multipart/form-data">

这样就可以正确上传文件,并且当上传到达服务器端时,应该调用监听器方法。