После ошибки проверки последующие запросы ajax получают значения из компонентов пользовательского интерфейса, а не из компонентов

В моем приложении на основе JSF 2 у меня есть форма, которая включает (среди других компонентов пользовательского интерфейса) несколько флажков.

На флажках я прописал ajax-запросы, которые срабатывают при их проверке. Запросы ajax на самом деле просто обновят значение другого флажка в компоненте поддержки. В результате другой флажок также будет отмечен (когда он будет повторно отображаться - поскольку он будет получать обновленное значение от вспомогательного компонента на этапе ответа на рендеринг).

Это работает нормально, пока вся форма не будет отправлена ​​и не возникнут ошибки проверки. Затем запросы ajax по-прежнему работают и изменяют значение в компоненте поддержки, но на этапе повторной визуализации обновленного флажка значение для него берется не из компонента поддержки, а из кэшированного значения, которое берется из ComponentStateHelper. класс.

Насколько я понимаю, это используется для новой функции JSF 2 для сохранения только частичных изменений в дереве компонентов.

Чего я не понимаю, так это того, как это связано с этапом проверки? Почему в классе StateHelperесть кэшированное значение для моего флажка, когда проверка обнаружила ошибки?

6
задан Jens 15 June 2012 в 10:34
поделиться