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