После ошибки проверки последующие запросы ajax получают значения из компонентов пользовательского интерфейса, а не из Beans
В моем приложении на основе JSF 2 у меня есть форма, которая включает (среди других компонентов пользовательского интерфейса) некоторые флажки.
На флажках я зарегистрировал ajax-запросы, которые запускаются при их проверке. Ajax-запросы на самом деле просто обновят значение другого флажка в компоненте поддержки. В результате будет также установлен другой флажок (когда он будет перерисован - так как он будет принимать обновленное значение из компонента поддержки в фазе ответа рендеринга).
Это работает нормально, пока не будет отправлена вся форма и не возникнут ошибки проверки.
Затем запросы ajax по-прежнему работают и меняют значение в компоненте поддержки, но на этапе повторного рендеринга обновленного флажка значение для него берется не из компонента поддержки, а из кэшированного значения, которое берется изComponentStateHelper
учебный класс.
Насколько я понимаю, это используется для новой функции JSF 2, чтобы хранить только частичные изменения в дереве компонентов.
Я не понимаю, как это связано с этапом валидации? Почему в кэше есть значениеStateHelper
класс для моего флажка, когда проверка обнаружила ошибки?