JSF valueChangeListener реагирует только на вторую попытку? - PullRequest
0 голосов
/ 16 сентября 2010

У меня на странице 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

1 Ответ

1 голос
/ 16 сентября 2010

Давным-давно я боролся с IBM и JSF 1.1 в последний раз, но я смутно припоминаю некоторую древнюю ошибку JSF 1.1, которая приводила к тому, что valueChangeListener не будет запускаться, когда начальное значение null.Я бы предложил установить начальное значение (свойство value="#{SearchView.governorate}") в пустую строку или что-то еще.

Конечно, вы также можете обновить JSF 1.1 до последней сборки JSF 1.1_02.В нем довольно много функциональных исправлений, возможно, он также исправит эту (и другие) проблемы.IBM WAS 5.x поставляется с очень ранней версией JSF 1.1, которая перегружена некоторыми странными ошибками.Или, может быть, вы используете IBM WAS 6.x, тогда вы также можете полностью сбросить JSF 1.1 и перейти на значительно улучшенную JSF 1.2.Вы можете скачать библиотеки JSF из архивов прямо здесь .

...