Следует ли использовать немедленный = «истина» при работе с компонентом AJAXified JSF 2.0?

Долженimmediate="true" никогда не использовать при работе с компонентом AJAXified JSF 2.0?

Примером может быть:

Если я хочу реализовать & quot; Отмена & quot; кнопка на странице JSF 2.0, где, если пользователь нажимает кнопку «Отмена», проверки не должны выполняться, если я установлюimmediate="true" на компоненте, если это ajaxified компонент или следует указать, что никакие компоненты в форме не должны обрабатываться? Если да, то как реализовать эту функциональность, используя функции компонента AJAXified, а не «старый способ»? использованияimmediate="true"?

Ответы на вопрос(1)

Решение Вопроса

immediate="true" на кнопку отмены стала бесполезной с<f:ajax> который вы можете просто установить наexecute="@this" (который уже используется по умолчанию), чтобы пропустить обработку всех входных компонентов в одной форме.

Вы можете столкнуться с проблемами только тогда, когда форма уже была отправлена заранее, но не удалась из-за ошибки преобразования / проверки. Если вы нажмете кнопку отмены с помощью ajax и отобразите форму после этого, входные данные все равно будут помечены как недействительные, и любые изменения в значении модели не будут отражены (вы, вероятно, делаетеentity = new Entity(); или что-то в методе отмены действия, чтобы очистить старые значения формы). Эта проблема не возникает при использовании синхронного (не AJAX) запроса сimmediate="true", Эта проблема на самом деле не имеет ничего общего сimmediate="true", но с жизненным циклом JSF запросов ajax. Вам необходимо сбросить недействительное состояние задействованных компонентов ввода, вызвавEditableValueHolder#resetValue() на компоненты, которые не включены в AJAXexecute, но включены в Аяксrender. OmniFaces имеетResetInputAjaxActionListener именно для этой цели.

Ваш ответ на вопрос