У меня есть jsp с af:inputText
внутри формы, к которому у меня есть метод моего бина как valueChangeListener
.
--%><af:form id="form1" usesUpload="true" inlineStyle="padding: 1px;"><%--
--%><af:panelGroup layout="vertical" styleClass="editFrame"><%--
--%><afh:tableLayout width="100%"><%--
--%><afh:rowLayout><%--
--%><afh:cellFormat><%--
--%><af:panelForm maxColumns="1"
labelWidth="200px"
styleClass="pubPanelForm"
partialTriggers="<some values>"><%--
--%><af:panelLabelAndMessage label="Nachforderung insgesamt" rendered="#{dokumentPflegenBean.renderForderungsbetrag}"><%--
--%><af:inputText value="#{dokumentPflegenBean.forderungsbetrag}"
id="p_betrag"
disabled="#{dokumentPflegenBean.forderungsbetragDisabled}"
autoSubmit="true"
onfocus="doFocus(this); setCurrentFocus(this); setAutocompleteOff(this);"
onblur="doBlur(this); setAutocompleteOff(this); if (!isBetrag(this)) return false;"
immediate="true"
maximumLength="14"
columns="14"
onchange="if (!isBetrag(this)) return false;"
valueChangeListener="#{dokumentPflegenBean.forderungsbetragChangeListener}"
simple="true">
--%><af:attribute name="valueChangeSource" value="betrag"/><%--
--%></af:inputText><%--
--%></af:panelLabelAndMessage><%--
--%></af:panelForm><%--
--%></afh:cellFormat><%--
--%></afh:rowLayout><%--
--%></afh:tableLayout><%--
--%></af:panelGroup><%--
--%></af:form><%--
Я отладил метод forderungsbetragChangeListener(ValueChangeEvent)
моего компонента на стороне сервера при изменении значения текстового поля. Этот метод иногда вызывается, а иногда нет, и я понятия не имею, почему он не вызывается каждый раз.
Я также отладил javascript в своем браузере, потому что подумал, что, возможно, функция isBetrag()
может быть прикована цепью перед вызовом bean-компонента, но функция js всегда возвращает true, поэтому часть return false;
никогда не выполняется и поэтому никогда не может помешать вызову предшествующего вызова в цепочку bean.
Я также попытался отладить часть javascript, которая вызывает bean-компонент на стороне сервера, но этот код, конечно, генерируется платформой и его почти невозможно прочитать.
У меня заканчиваются идеи, как продолжить поиск того, что происходит. У кого-нибудь есть идеи, что я могу сделать, чтобы выяснить, почему слушателя иногда не вызывают? Или лучше: кто-нибудь знает, почему не может быть вызван слушатель?