PrimeFaces 2.x/3.x
This is not natively possible, so a trick is needed. In the rendered
attribute of <p:messages>
, check if <p:poll>
was been triggered and if so, then return false
. This way JSF thinks there's no auto-updatable messages component in the component tree during rendering and will therefore ignore it.
If the <p:poll>
is triggered, then its client ID appears as javax.faces.source
request parameter. So, this should do:
<p:messages ... rendered="#{param['javax.faces.source'] ne poll.clientId}" />
...
<p:poll binding="#{poll}" ... />
(note: no additional bean properties needed)
PrimeFaces 4.x+
All PrimeFaces command components got a new ignoreAutoUpdate
attribute which you could set to false
to ignore all autoUpdate="true"
components in the ajax update.
<p:poll ... ignoreAutoUpdate="true" />
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…