第一次在这里发帖,所以对我来说有点裸露。搜索了很多,但无论是因为我是盲人还是因为我没有使用正确的搜索字符串,我都没有找到任何与我的问题相关的答案。
基本上,我有一个用 Java 编写并使用 Primefaces 的 Web 应用程序。我正在使用 ap:layout,主要内容在中心单元,页眉在北部,页脚在布局的南部单元。west 布局单元持有 ap:poll ,它每两秒运行一次,并且在触发 oncomplete 事件时调用一个 js 函数。
到目前为止,一切都很好。问题是,在某个页面上,在中心布局单元中,我有 af:viewParam,它只接受 long,即使该值是有效的,当执行上述轮询时,f:viewParam 中的 requiredMessage 也会出现。
在进行了一些深入的搜索后,我发现通过向 p:poll 添加 ignoreAutoUpdate="true" ,来自 f:viewParam 的消息不会被触发,并且告诉我必须提供有效 id 的警告不是' t 所示。
所以,我的问题是:通过在我的 p:poll 中使用 ignoreAutoUpdate="true" 是否会危及 f:viewParam 验证?或者把它放在那里安全吗?
这是我的布局中的相关部分:
民意调查形成西部布局单元:
<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:viewParam 的 f:metadata 块:
<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>
谢谢!