Итак, большую часть сегодняшнего дня я был в тупике, пытаясь вызвать метод в своем компоненте поддержки, когда компонент меняет значения.Все работает правильно, если мои компоненты находятся за пределами <p:dialog>
, однако при вложении внутрь диалога сторона сервера никогда не происходит.Первоначально я работал с элементом управления <p:calendar>
, но заметил, что он также не работает с простым inputText.Работает следующий пример:
<h:panelGrid columns="3">
<h:outputText value="Start"/>
<p:inputText id="startOfRange" value="#{myBean.startRange}" valueChangeListener="#{myBean.startChanged}">
<p:ajax event="change" update="play"/>
</p:inputText>
<h:outputText id="play" style="margin-left: 10px;" value="#{myBean.startRange}"/>
</h:panelGrid>
Мой метод bean-компонента выглядит как
public void startChanged(ValueChangeEvent event) { }
Этот метод вызывается после вкладки из inputText, однако при переносе, как показано ниже, метод никогда не вызываетсявызывается:
<p:dialog widgetVar="efDlg" zindex="10" appendToBody="true" header="Create Custom Date Range"
modal="true" height="375" width="450" resizable="false" closable="false" >
<h:panelGrid columns="4">
<h:outputText value="Start"/>
<p:inputText id="startOfRange" value="#{myBean.startRange}" valueChangeListener="#{myBean.startChanged}">
<p:ajax event="change" update="play"/>
</p:inputText>
<h:outputText id="play" style="margin-left: 10px;" value="#{myBean.startRange}"/>
<p:inputText id="endOfRange" value="#{myBean.endRange}" valueChangeListener="#{myBean.endChanged}"/>
</h:panelGrid>
<div class="customRangeButtons">
<span>
<p:commandButton value="Cancel" onstart="efDlg.hide();" actionListener="#{myBean.cancelCustomDateRange}" update="pGraphs"/>
</span>
<span style="margin-left: 300px;">
<p:commandButton value="Ok" type="submit" onstart="efDlg.hide();" action="#{myBean.saveCustomDateRange()}" update="pGraphs"/>
</span>
</div>
</p:dialog>
Примечание. Я использую Primefaces 2.2.1 с Mojarra 2.1.0.Любые идеи о том, почему я не могу получить метод startChanged для вызова, когда значение изменилось?