我在表单中有一个带有af:inputText
的jsp,我将自己的bean的方法附加为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><%--
当更改文本字段的值时,我在服务器端调试了bean的forderungsbetragChangeListener(ValueChangeEvent)
方法。该方法有时被调用,有时不被调用,我不知道为什么每次都没有调用它。
我还调试了浏览器中的javascript,因为我认为也许isBetrag()
函数可以链接到对bean的调用之前,但是js函数始终返回true,所以return false;
部分永远不会执行,因此永远无法阻止对Bean的链接的先前调用被调用。
我还尝试调试javascript部分,该部分调用服务器端Bean,但是该代码当然是由框架生成的,几乎无法读取。
我没办法继续搜索发生了什么。有谁知道我怎么做才能找出为什么有时不叫听者的想法?或更好:有人知道为什么无法调用该监听器吗?