Java JSF valueChangeListener仅在第二次尝试时作出反应?

Java JSF valueChangeListener仅在第二次尝试时作出反应?,java,jsf,jakarta-ee,websphere,Java,Jsf,Jakarta Ee,Websphere,我有JSF页面有两个下拉列表,我想加载第二个列表,其中的值基于第一个列表中选择的值。但是,“onchange”事件仅在我第二次更改选择时检测到 网页代码段: <h:form id="selectRegion"> <h:selectOneMenu id="governorate" value="#{SearchView.governorate}" styleClass="mediumInput" immediate="tru

我有JSF页面有两个下拉列表,我想加载第二个列表,其中的值基于第一个列表中选择的值。但是,“onchange”事件仅在我第二次更改选择时检测到

网页代码段:

<h:form id="selectRegion">
    <h:selectOneMenu id="governorate"
            value="#{SearchView.governorate}"
            styleClass="mediumInput" immediate="true"
            valueChangeListener="#{SearchView.goverValueChanged}"
            onchange="submit();">
            <f:selectItems value="#{SearchView.goverItemsList}" id="govItems" />
    </h:selectOneMenu>

    <h:selectOneMenu id="district"
            value="#{SearchView.district}"
            styleClass="mediumInput">
            <f:selectItems value="#{SearchView.districtItemsList}" id="distItems" />
    </h:selectOneMenu>
</h:form>

<h:form id="SearchFor">
<hx:commandExButton
    id="button1" styleClass="btn" type="submit"
    value="Search" action="#{SearchView.searchAction}"
    onclick="document.getElementById('selectRegion').submit();">
</hx:commandExButton>
</h:form>

问题是goverValueChanged(ValueChangeEvent事件)仅在我第二次修改省的值时调用,而不是第一次(我在goverValueChanged(ValueChangeEvent事件)中放入系统以了解这一点)


有人知道什么地方可能出错吗?提前谢谢!我正在使用JSF 1.1并在IBM WAS上运行,这是很久以前我最后一次使用IBM和JSF 1.1,但我隐约记得一些古老的JSF 1.1错误,它导致valueChangeListener在初始值为
null
时不会启动。我建议将初始值(
value=“#{SearchView.governorate}”
后面的属性)设置为空字符串或其他值


当然,您也可以将JSF1.1升级到最新版本JSF1.1_02。它有相当多的功能性错误修复,也许它也会修复这个(和其他)问题。IBM WAS 5.x附带了一个非常早期的JSF1.1版本,其中包含了一些奇怪的bug。或者,如果您使用的是IBM WAS 6.x,那么您也可以完全转储JSF 1.1,然后使用改进得多的JSF 1.2。您可以从存档中下载JSF库。

谢谢您的回复,我尝试了初始化的想法,但没有成功。。。我认为我们应该升级到JSF1.2来确定:是HTML/JS代码没有调用
submit()
,还是JSF代码只是跳过了valueChangeListener方法?作为穷人的调试,在
onclick
中添加一个
alert('blah')
,以排除一个和另一个,即
onclick=“alert('onclick called!”);submit();“