Разница между значениями запроса заявки и значениями модели обновления

Я часто сомневаюсь в этих двух фазах. Я понимаю:

  • Применить значения запроса

    • На этом этапе представленные значения поступают из параметра запроса. Затем значения запроса устанавливаются в резервную копию bean ie.setting для компонентов UIInput
  • Обновить значения модели

    • На этом этапе обработанные значения передаются из резервной копии bean (UIInput) в управляемый beans. (Это наш пользовательский JSF beans).

Я думаю, что мое понимание верное. Но, прочитав несколько статей, я смутился. Я хочу, чтобы я стал более ясным на этих двух этапах. Пожалуйста, уточните меня.

Ответ 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, где значения фактически были установлены и извлечены.

См. также