Вы должны указать компоненту p:poll
для повторного получения значений бина.Вы можете легко сделать это, вызвав новую фазу рендеринга (через PrimeFaces update
или через f:ajax
render
) на компоненте.
Итак, чтобы это работало, вам просто нужно сделать что-то вроде этого,
<h:form>
<p:selectOneButton value="#{sampleBean.interval}">
<f:selectItem itemLabel="1" itemValue="1"/>
<f:selectItem itemLabel="2" itemValue="2"/>
<f:selectItem itemLabel="3" itemValue="3"/>
<f:ajax render="@form"/>
</p:selectOneButton>
<p:poll interval="#{sampleBean.interval}" listener="#{sampleBean.execute}" id="poll"/>
</h:form>
Обратите внимание на приведенный выше вызов f:ajax
.
Вам нужно нацелить охватывающий (родительский) компонент, чтобы он обновился - вот почему мы нацеливаемся на форму, а не накомпонент опроса напрямую.