Многократные вызовы AJAX удаляют ранее переданные значения в управляемом компоненте - PullRequest
3 голосов
/ 04 мая 2011

У меня проблемы с несколькими вызовами ajax на одной странице. Первый вызов ajax для события «blur» заполняет выпадающий список. Затем при нажатии кнопки на странице должно отображаться «otherElement» на основе значений в форме. Проблема заключается в том, что «term» находится в выполнении последнего вызова Ajax. Это также приводит к тому, что term, CompanyCode и fileNumber будут нулевыми в FormBean. Когда я статически заполняю термины, это работает.

<h:form id="createRequest">

            <h:selectOneMenu id="CompanyCode" required="true"
                value="#{FormBean.CompanyCode}"> 
                <f:selectItems value="#{utility.Companies}" />
            </h:selectOneMenu>
            <br/>

            <h:inputText id="fileNumber" styleClass="field"
                value="#{FormBean.fileNumber}"
                required="true">
                <f:ajax event="blur" execute="CompanyCode fileNumber"
                    render="term" />
            </h:inputText>
            <br />

            <h:selectOneMenu id="term" required="true"
                value="#{FormBean.term}">
                <f:selectItems value="#{FormBean.terms}" />
            </h:selectOneMenu>

            <br />

            <h:commandButton class="button" style="button"
                value="#{resources['btn.common.submitRequest']}">
                <f:ajax event="click"
                    execute="CompanyCode fileNumber term"
                    render="otherElement" />
            </h:commandButton>

        </h:form>

Есть идеи? Спасибо

1 Ответ

2 голосов
/ 04 мая 2011

Ваш бин, вероятно, является областью действия запроса, что приводит к его повторному воссозданию при каждом HTTP-запросе (ajax или нет).Все изменения / свойства, установленные ajax-запросами, теряются при последующих запросах.Вам нужно поместить компонент в область просмотра.

@ManagedBean
@ViewScoped
public class FormBean implements Serializable {
    // ...
}

Таким образом, компонент будет жить до тех пор, пока вы возвращаете void или null из методов действия.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...