Ответ 1
A bean является управляемым bean, когда вам никогда не нужно управлять экземпляром bean самостоятельно, как вручную, someScopedMap.put("bean", new Bean());
. Эта структура позаботится об этом. Это не имеет никакого отношения к тому, содержит ли страница форму или нет. Вы в основном рассказываете о структуре "Привет, вот резервный bean класс com.example.Foo
. Вы можете использовать его как управляемый bean с именем" foo "и поместить его в область X всякий раз, когда выражение EL ссылается на него через #{foo}
", без необходимости делать все сами. Структура (JSF, CDI, Spring и т.д.) Управляет всеми собой.
Что касается выбора правильной области действия, то это логически зависит от области, в которой должны храниться данные. Например, вы, очевидно, не хотите хранить данные формы в области приложения. Любой другой посетитель сайта в противном случае видел бы это. Просто подумайте логично и прочитайте Как правильно выбрать область bean?
Что касается "одной концепции bean для каждой формы" или "одной bean для каждой страницы", это на самом деле субъективно, так как обе могут технически работать одинаково хорошо, но что касается ремонтопригодности, настоятельно рекомендуется сделать ваши классы такими же гладкими, как возможно, включая поддержку beans. Поэтому "одна bean за форму" - лучшая практика. Не бросайте совершенно разные обязанности вместе в одном классе. Закон demeter и т.д. Beans могут легко обращаться друг к другу с помощью @Inject
или @ManagedProperty
.