@ManagedBean
просто объявляет, что JSF управляет определенным компонентом (делает его доступным для языка выражений среди других).
@ViewScoped
позволяет вам объявить конкретную область действия, в которой будет жить боб. По умолчанию (если вы не указываете какую-либо область действия) это @RequestScoped
, что означает ваш Боб будет жить через один запрос, а затем будет уничтожен. Другие области применения: @SessionScoped
и @ApplicationScoped
. Сторонние расширения представили другие возможности.
@ViewScoped
будет существовать до тех пор, пока вы отправляете страницу обратно на себя. «Представление» - это другое слово для «страницы» в Java EE, но область видимости страницы уже означала что-то еще в Java EE. Область просмотра очень удобна, так как она позволяет шаблон инициализации данных при первом обращении к странице (через запрос не для лиц, который обычно является запросом GET), а затем сохраняет эти данные при работе на странице, выполняя обратные вызовы Запросы AJAX и т. Д.
Область является спасателем при работе с таблицами в JSF, где вы взаимодействуете с компонентами в таблице. А именно, в JSF есть правило, что данные, которые использовались для визуализации таблицы, должны быть ТОЧНЫМИ ЖЕ данными, которые используются после обратной передачи при обработке компонентов, с которыми вы взаимодействовали. С точки зрения объема это тривиально, но без этого довольно сложно.