我有一个带有 ap:poll 标签的 jsf 页面,带有一个监听器和一个更新。更新被调用,但监听器不是。
我慢慢地从 jsf 页面中删除了部分,直到我将问题缩小到一个<f:validateLongRange>
标签。如果我删除了验证,则会调用侦听器,但不会调用它。
简化的 jsf 页面如下。为什么验证会导致民意调查出现问题?
我正在使用在 Tomcat 7 上运行的 primefaces 3.5 和 JSF 2.1。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/WEB-INF/templates/BasicTemplate.xhtml">
<ui:define name="menuId">
#{trackTabBean.setCurrentTab(trackTabBean.devicesTab)}
</ui:define>
<ui:define name="content">
<f:metadata>
<f:viewParam name="cgId" value="#{deviceBean.inputControlGroupId}"
validatorMessage="Control Group Id must be between 1 and 254">
<f:validateLongRange maximum="254" minimum="0" />
</f:viewParam>
<f:viewParam name="devId" value="#{deviceBean.inputDeviceId}" />
<f:event listener="#{deviceBean.loadDevice}" type="preRenderView"></f:event>
</f:metadata>
<h:form id="deviceForm">
test (Load more code here but removed for testing)
<p:poll interval="5" listener="#{deviceBean.updateDetails}" update="deviceForm"/>
</h:form>
<h:form>
</h:form>
</ui:define>
</ui:composition>
</html>