context.addMessage不适用于fileupload组件

时间:2013-03-26 05:49:52

标签: jsf primefaces

我想在fileUpload组件的uploadListner中显示一条消息。但是它根本没有显示任何消息.Below是我正在使用的代码片段。

     FacesContext context = FacesContext.getCurrentInstance();
        FacesMessage msg = new FacesMessage(
                FacesMessage.SEVERITY_ERROR,
                "Please remove special charecters from the File Name.        ",
                "");
        context.addMessage(null, msg);

我在p:commandButton中尝试了同样的事情,它正常工作。 这是代码段的XHTML部分。

1 个答案:

答案 0 :(得分:1)

您需要在视图中声明<h:messages><p:messages><p:growl>组件才能显示消息。鉴于您在null中使用FacesContext#addMessage()客户端ID,您可能打算显示全局消息,在这种情况下,您可以向上述消息组件添加globalOnly="true"属性以过滤全局仅邮件。

此外,如果您要发送ajax请求,则还应该忘记通过在update的{​​{1}}属性中指定消息组件的客户端ID来更新消息组件。 。

E.g。

<p:fileUpload>

或者,如果您使用的是PrimeFaces,也可以使用<p:fileUpload ... update="messages" /> ... <h:messages globalOnly="true" /> 代替:

autoUpdate="true"