Ответ 1
Применить значения запроса
- На этом этапе представленные значения поступают из параметра запроса. Затем значения запроса устанавливаются в резервную копию bean ie.setting для компонентов UIInput
Это не совсем правильно. Значения не устанавливаются в резервную копию beans. Они устанавливаются в компоненты. В основном для каждого компонента UIInput
в дереве компонентов происходит следующее:
input.setSubmittedValue(request.getParameter(input.getClientId()));
Здесь input
UIInput
и request
HttpServletRequest
.
Обновить значения модели
- На этом этапе обработанные значения передаются из резервной копии bean (UIInput) в управляемый beans. (Это наш пользовательский JSF beans).
Также не совсем правильно. UIInput
компоненты не поддерживают beans. В основном для каждого компонента UIInput
в дереве компонентов происходит следующее:
bean.setProperty(input.getValue());
Здесь bean и свойство основано на привязке значения ввода, например. value="#{bean.property}"
.
Все со всеми, ваше замешательство четко различает дерево компонентов JSF, поддержку JSF beans и управляемый JSF beans. Дерево компонентов JSF - это тот, который вы определили на странице JSP/Facelets, и как вы можете получить FacesContext#getViewRoot()
. Поддержка JSF beans - это классы Javabean, свойства которых привязаны к дереву компонентов, используя EL, например #{bean.property}
. Управляемые JSF beans являются конкретными примерами этих классов Javabean. Они могут быть запросами, сеансами или областями приложения (и в JSF 2.0 также отображаются области видимости). Это управляемый beans, где значения фактически были установлены и извлечены.