【问题标题】:Why can't I access managed bean methods from a JSF2 page?为什么我不能从 JSF2 页面访问托管 bean 方法?
【发布时间】:2011-09-18 17:17:51
【问题描述】:

<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 上的方法,但我没有这样做。我不明白为什么会这样。

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

特鲁德维希

【问题讨论】:

    标签: file-upload jsf-2 richfaces listener


    【解决方案1】:

    假设 RichFaces 4.0,您只需确保将父 &lt;h:form&gt; 设置为将请求正文编码为 multipart/form-data

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

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

    【讨论】:

    • 感谢您抽出宝贵时间!是的,Richfaces 4.0。但是控制台上仍然没有显示任何内容。
      标签设置在模板文件上,这可能是原因吗?我认为文件正在上传,因为当我在上传文件后访问页面上的 组件时,它会弹出 (预期的操作)并且文件在那里列出。
    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2011-10-16
    • 2014-07-02
    • 1970-01-01
    相关资源
    最近更新 更多