Я надеюсь, что в этом посте я смогу узнать мнение людей о лучших практиках интерфейса между страницами JSF и поддержке beans.
Одна вещь, на которую я никогда не могу согласиться, - это структура моей поддержки beans. Кроме того, я никогда не нашел хорошей статьи по этому вопросу.
Какие свойства принадлежат поддержке beans? Когда целесообразно добавлять дополнительные свойства к данному bean, а не создавать новый bean и добавлять на него свойства? Для простых приложений имеет смысл просто иметь единственную поддержку bean для всей страницы, учитывая сложность вложения одного bean в другой? Должна ли поддержка bean содержать какую-либо фактическую бизнес-логику или строго содержать данные?
Не стесняйтесь отвечать на эти вопросы и любые другие, которые могут возникнуть.
Что касается уменьшения связи между страницей JSF и базой bean, я никогда не разрешаю странице JSF обращаться к свойствам свойств bean. Например, я никогда не допускаю что-то вроде:
<h:outputText value="#{myBean.anObject.anObjectProperty}" />
Мне всегда нужно что-то вроде:
<h:outputText value="#{myBean.theObjectProperty}" />
с поддержкой bean значения:
public String getTheObjectProperty()
{
return anObject.getAnObjectProperty();
}
Когда я перебираю коллекцию, я использую класс-оболочку, чтобы избежать, например, сверления в объект в таблице данных.
В целом, этот подход кажется мне "правильным". Это позволяет избежать любой связи между представлением и данными. Пожалуйста, поправьте меня, если я ошибаюсь.