сохранить данные текстового поля после Ajax-запроса с вызовом RenderResponse с JSF 2.0 - PullRequest
0 голосов
/ 08 февраля 2012

Как сохранить значения текстовых полей при выполнении действия ajax с немедленным = true? Мне нужно визуализировать всю форму. Я хочу пропустить проверки и обновить фазы модели при выполнении действия ajax. Я попытался использовать FacesContext.getCurrentInstance (). RenderResponse () в конце метода, который вызывается действиями ajax, но он не работает. Старые значения появляются в текстовых полях или некоторые данные очищаются в некоторых текстовых полях. Я пока не хочу обновлять бэк-бин.

Что я хочу сделать, это сохранить информацию, которую пользователь заполняет в текстовых полях. Кнопка Ajax, которую я использую, добавляет динамически больше текстовых полей, и я устанавливаю атрибут render в кнопке ajax для рендеринга всей страницы (мне нужно сделать полный рендер). Внутри метода, который я вызываю с помощью действия ajax, у меня есть «FacesContext.getCurrentInstance (). RenderResponse ();»

код кнопки:

<h:commandButton id="btnAdd" value="Add" type="button">
<f:ajax event="click" execute="@form" render=":form" listener="#{ManagedBean.add()}"/>
</h:commandButton>

И действие слушателя:

public void add() {
   Person p = new Person();
   ManagedBean.getPeople().add(p);
   FacesContext.getCurrentInstance().renderResponse();
}

У меня есть пользовательский интерфейс: повторите, чтобы перебрать список людей, и код текстового поля:

<ui:repeat value="#{ManagedBean.people}" var="currentPerson" varStatus="i">
<h:inputText id="p" readonly="false" label="Person" value="#{currentPerson.name}"  >
</h:inputText>
</ui:repeat>

Я отлаживал фазы JSF и получил:

[2/7/12 15:06:33:584 CST] 0000002f SystemOut     O START PHASE RESTORE_VIEW 1
[2/7/12 15:06:34:375 CST] 0000002f SystemOut     O END PHASE RESTORE_VIEW 1
[2/7/12 15:06:34:981 CST] 0000002f SystemOut     O START PHASE APPLY_REQUEST_VALUES 2
[2/7/12 15:06:35:553 CST] 0000002f SystemOut     O END PHASE APPLY_REQUEST_VALUES 2
[2/7/12 15:06:36:089 CST] 0000002f SystemOut     O START PHASE RENDER_RESPONSE 6
[2/7/12 15:06:44:364 CST] 0000002f SystemOut     O END PHASE RENDER_RESPONSE 6

Есть ли способ извлечь данные из текстовых полей и снова установить их для них в представлении после вызова ajax? Спасибо.

1 Ответ

0 голосов
/ 09 февраля 2012

вы можете использовать класс-оболочку для людей в людях.Затем вы можете позволить JSF вызывать сеттеры, и исходные объекты не будут затронуты.

MAG, Мило ван дер Зее

...