h: inputText, h: selectOneMenu показывает старые значения после повторного рендеринга - PullRequest
0 голосов
/ 09 июля 2011

У меня есть h: inputText, h: selectOneMenu в каждой строке таблицы. У меня также есть кнопка удаления в конце каждой строки. При нажатии кнопки удаления соответствующая строка удаляется. Когда я удаляю строку, количество строк, отображаемых в таблице, уменьшается на единицу, но данные по-прежнему отображаются из старой строки. Придумайте следующий пример:

Считайте, что у меня есть три строки:

Text1 comboxBox1 delete1
Text2 comboxBox2 delete2
Text3 comboxBox3 delete3

при нажатии delete1:

Текущее поведение
Text1 comboxBox1 delete2
Text3 comboxBox3 delete3

Ожидаемое поведение
Text2 comboxBox2 delete2
Text3 comboxBox3 delete3

Одна странная вещь, которую я заметил, заключается в том, что, когда я менял inputText на outputText, данные обновляются. Я сталкиваюсь с этой проблемой только с компонентами ввода (textArea, testBox, combo-box и check-box).

Я использую JSF1.2, веб-поток Spring в среде портала.

1 Ответ

1 голос
/ 11 июля 2011

Таким образом, вместо значения модели отображается только представленное значение входного компонента.Это говорит о том, что проверка не прошла на конкретном компоненте.Как именно вы вызываете кнопку удаления?У меня сложилось впечатление, что вы подавляете ошибки проверки и удаляете строку в методе без действия.

Это неправильный способ удаления строки таблицы данных.Все, что вам нужно, это immediate="true" на кнопке удаления (и убедитесь, что у вас нет этого атрибута для компонентов ввода в той же строке!).

...