首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Primefaces中禁用p:growl?

如何在Primefaces中禁用p:growl?
EN

Stack Overflow用户
提问于 2019-01-16 22:34:57
回答 1查看 524关注 0票数 3

我已经向我的xhtml添加了组件,以捕获p:calendar组件上的dateSelect事件。它还使用了我的自定义验证器,如果日期来自错误的范围,则会抛出异常。我想在p:message中显示错误消息,但它同时在p:message和growl中显示。我怎样才能禁止在咆哮中显示这条消息?

我试过不同的方法。我试图以某种方式禁用p:growl组件,但没有结果。

下面是我的ajax日历组件:

代码语言:javascript
复制
                    <p:calendar id="dbstartdate" tabindex="3"
                                styleClass="calrequested" style="width:99px;"
                                showButtonPanel="true">

                        <p:ajax event="dateSelect"
                                listener="#{MyBean.saveDateRange}"
                                update=":dashboard_frameset"/>
                    </p:calendar>

我试过了,比如这样:

代码语言:javascript
复制
<p:growl for="dbstartdate" rendered="false"/>

对于p:ajax也是如此(我在这里添加了id )。

不幸的是,它没有成功。你们中有谁知道如何禁用p:ajax的咆哮吗?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-01-18 20:17:37

要解决这个问题,在我看来,您有两个选项可供选择;

仅允许p:growl中的全局消息

第一个选项是执行<p:growl globalOnly="true"/>。这将使PrimeFaces咆哮进入一种模式,即它只侦听没有特定客户端id的AJAX事件和消息。使用此方法,将for=id添加到组件/请求将导致它仅显示在目的地(例如,在p:message中,而不是在growl中)。

代码语言:javascript
复制
<p:calendar id="calendar">
    <p:ajax global="false" event="dateSelect" />
</p:calendar>

<p:message for="calendar" />
<p:growl globalOnly="true" />

显式使用<p:growl for="id"/>

第二种方法是使咆哮只监听具有特定客户端id的消息。这看起来像这样;

代码语言:javascript
复制
<p:calendar id="calendar">
    <p:ajax event="dateSelect" />
</p:calendar>

<p:message for="calendar" />
<p:growl for="someotherId" />

根据您的设计目标,您将优先选择其中一个作为主要解决方案。第二个解决方案将过滤和忽略没有任何目的地的faces消息,因为没有组件来接收它们。这可能是也可能是不可取的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54219352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档