如何禁用p:Primefaces中的咆哮?
我已经将组件添加到xhtml中,以捕获p:calendar组件上的dateSelect事件。它还使用我的自定义验证器,如果日期来自错误的范围,它会抛出异常。我想在p:message中显示错误消息,但它同时在p:message和growl中显示。如何禁用在咆哮中显示此消息 我尝试了不同的东西。我试图以某种方式禁用p:growl组件,但没有结果 以下是我使用ajax的日历组件:如何禁用p:Primefaces中的咆哮?,primefaces,Primefaces,我已经将组件添加到xhtml中,以捕获p:calendar组件上的dateSelect事件。它还使用我的自定义验证器,如果日期来自错误的范围,它会抛出异常。我想在p:message中显示错误消息,但它同时在p:message和growl中显示。如何禁用在咆哮中显示此消息 我尝试了不同的东西。我试图以某种方式禁用p:growl组件,但没有结果 以下是我使用ajax的日历组件: <p:calendar id="dbstartdate" tabindex=
<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>
我试过,例如,类似这样的东西:
<p:growl for="dbstartdate" rendered="false"/>
p:ajax也是一样(我在那里添加了id)
不幸的是,它没有成功。你们中有人知道如何从p:ajax禁用咆哮吗?提前谢谢 要解决这个问题,在我看来,你有两个选择 只允许在
p:growl
第一个选项是执行
。这将使PrimeFaces咆哮进入一种模式,它只侦听没有特定客户端id的AJAX事件和消息。使用此方法,将for=id
添加到组件/请求将导致它只显示在目标中(例如在p:message
中,而不显示在咆哮中)
<p:calendar id="calendar">
<p:ajax global="false" event="dateSelect" />
</p:calendar>
<p:message for="calendar" />
<p:growl globalOnly="true" />
明确使用
第二种方法是让咆哮只听带有特定客户id的消息
<p:calendar id="calendar">
<p:ajax event="dateSelect" />
</p:calendar>
<p:message for="calendar" />
<p:growl for="someotherId" />
根据您的设计目标,您将首选其中一个作为主要解决方案。第二个解决方案将过滤并忽略没有任何目标的faces消息,因为没有组件接收它们。这可能是可取的,也可能不是可取的。您有一个
for=“dbstartdate”
明确引用了p:calendar
。为什么不直接删除它?但什么是您的“自定义验证器”?真正的验证器不应该抛出异常。但“仅全局”可能会有所帮助?您最好在咆哮时使用“仅全局”,或者使用咆哮和消息组件的严重性属性。文档: