第一篇文章在這裏,對我來說很簡單。搜索了很多,但無論是因爲我是失明還是因爲我沒有使用正確的搜索字符串,我還沒有找到任何與我的問題有關的答案。Primefaces從f觸發消息觸發器:viewParam
基本上,我有一個用Java編寫並使用Primefaces的Web應用程序。我使用的是p:佈局,主要內容位於中心單元,北部的頁眉和南部單元的頁腳。 West佈局單元持有一個每兩秒運行一次的p:輪詢,當oncomplete事件被觸發時,cand調用js函數。
到目前爲止這麼好。問題是,在某個頁面上,在中心佈局單元中,我有一個僅接受long的f:viewParam,即使該值有效,當上述輪詢被執行時,f:viewParam中的requiredMessage也會出現。
經過一番深入的搜索之後,我發現通過在p:poll中添加一個ignoreAutoUpdate =「true」,來自f:viewParam的消息不會被觸發,並且告訴我必須提供一個不顯示有效的ID。
所以,我的問題是:通過在我的P中的ignoreAutoUpdate =「真」:民意測驗會妥協,以任何機會,在F:viewParam驗證?還是安全地離開它?
這裏是從我的佈局relevan部分:
民意測驗形成西佈局單元:
<h:form id="liveQueueForm">
<p:remoteCommand name="rcStart" action="#{liveQueueMB.startPoll()}"/>
<p:remoteCommand name="rcStop" action="#{liveQueueMB.stopPoll()}"/>
<p:poll id="liveQueueUpdater" delay="10" widgetVar="livePoll" interval="2" listener="#{liveQueueMB.init}" oncomplete="updateLiveQueue(xhr, status, args);" autoStart="true" partialSubmit="true" ignoreAutoUpdate="true" immediate="true" />
<div id="live-queue">
<div id="queue-holder"></div>
</div>
</h:form>
的F:元數據塊,其保持我的F:viewParam:
<f:metadata>
<f:viewParam name="callId" value="#{viewInboundCallDetailsMB.callId}" required="true" requiredMessage="Please provide a valid call ID" converter="javax.faces.Long" converterMessage="The call ID is not numeric" />
<f:viewAction action="#{viewInboundCallDetailsMB.init}"/>
</f:metadata>
謝謝!
你在哪裏放置''標籤? 「」的進程屬性默認設置爲「@ form」(並且「@ p:remoteCommand>」設置爲「@ all」)。因此,它處理整個形式。您可能需要將「」的流程屬性設置爲「@ this'(除了
')之外。 – Tiny 2015-01-21 11:01:26
使用''
''標記是基於存儲在具有會話範圍的ManagedBean中的布爾值。我已經考慮過這種可能性,並在提出ignoreAutoUpdate =「true」解決方案之前嘗試了它。 – 2015-01-21 11:15:01