Как узнать, вызывается ли JSF-компонент установки из события AJAX или как часть обработки POST формы - PullRequest
3 голосов
/ 26 января 2012

У меня есть форма, которая содержит поле InputText номера детали и некоторые другие поля, которые представляют атрибуты детали.Если пользователь вводит существующий номер детали, я хочу заполнить другие поля существующими атрибутами детали.Затем у оператора есть возможность изменить номер детали на что-то другое (по сути, создав новую деталь, используя существующую деталь в качестве шаблона), и / или изменить ее атрибуты.У меня есть событие AJAX, определенное для обновления модели при изменении номера детали, чтобы я мог получить атрибуты из базы данных:

<f:ajax event="valueChange" execute="@this" render="partlength" />

Мой вопрос такой: Как работает установщик номера детали (например, setPartNumber ()) знаете, вызывается ли он как часть события AJAX, и в этом случае я хочу получить атрибуты, или как часть фазы Обновления значений модели для публикуемой формы, в этом случае я не делаю?Или есть лучший способ выполнить то, что я пытаюсь сделать?

1 Ответ

1 голос
/ 26 января 2012

Вы можете определить PartialViewContext#isAjaxRequest(), является ли текущий запрос запросом ajax или нет. Вы можете получить PartialViewContext по FacesContext#getPartialViewContext().

if (FacesContext.getCurrentInstance().getPartialViewContext().isAjaxRequest()) {
    // The current request is an ajax request.
}

В качестве альтернативы можно просто выполнить работу в методе listener, указанном в <f:ajax>, а не в методе получения / установки. 1017 *

<f:ajax listener="#{bean.listener}" render="partlength" />

(обратите внимание, что я пропустил атрибуты event и execute, поскольку вы уже использовали значения по умолчанию)

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