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