Вопрос

У меня есть страница с выбором радио с тремя опциями и областью вводаTextArea.Когда я нажимаю кнопку отправки на своей странице, мне нужно выполнить некоторые проверки...Для этого я поставил на радио валидатор.Проблема в том, что когда валидатор выполняется, мне нужны значения inputTextArea и радио, но они имеют старые значения, а не те, которые были определены на странице до ее отправки.

Пример:String.valueOf(textArea.getValue()).equals("")) при первом суммировании кода String.valueOf(textAreaOcorrencia.getValue()) имеет значение null, но поскольку textArea была пустой, предполагалось, что она будет пустой нить.Когда он отправляется во второй раз, он имеет значение, которое он должен был иметь при первой отправке.Я знаю, что это как-то связано с жизненным циклом JSF, но не знаю, как обновить эти значения?

Заранее спасибо...

Это было полезно?

Решение

На этапе применения значений запроса отправленные значения будут установлены и доступны как submittedValue.На этапе проверки отправленные значения будут проверены, преобразованы и установлены как value.Компоненты проверяются в порядке сверху вниз по мере их появления в дереве компонентов.

Таким образом, если рассматриваемый компонент действительно появляется после текущий компонент в дереве компонентов, вам нужно будет получить его значение с помощью UIInput#getSubmittedValue() вместо UIInput#getValue().

Чтобы узнать больше о жизненном цикле JSF, вы можете найти эта статья для самостоятельной практики полезный.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top