Mam nadzieję, że w tym poście będę mógł poznać opinie ludzi na temat najlepszych praktyk dotyczących interfejsu między stronami JSF i zapasowymi komponentami bean.
Jedną rzeczą, na której nigdy nie mogę się zdecydować, jest struktura mojej fasoli. Ponadto nigdy nie znalazłem dobrego artykułu na ten temat.
Jakie właściwości mają poszczególne fasole? Kiedy należy dodać więcej właściwości do danego ziarna, w przeciwieństwie do tworzenia nowego ziarna i dodawania do niego właściwości? Czy w przypadku prostych aplikacji ma sens posiadanie tylko jednego ziarna zapasowego dla całej strony, biorąc pod uwagę złożoność związaną z wprowadzaniem jednego ziarna do drugiego? Czy fasola zapasowa powinna zawierać jakąkolwiek rzeczywistą logikę biznesową, czy też powinna zawierać wyłącznie dane?
Zapraszam do odpowiedzi na te i inne pytania, które mogą się pojawić.
Jeśli chodzi o zmniejszenie sprzężenia między stroną JSF a komponentem bean zapasowym, nigdy nie zezwalam stronie JSF na dostęp do właściwości właściwości zapasowego komponentu bean. Na przykład nigdy nie pozwalam na coś takiego jak:
<h:outputText value="#{myBean.anObject.anObjectProperty}" />
Zawsze potrzebuję czegoś takiego:
<h:outputText value="#{myBean.theObjectProperty}" />
o wartości ziarna wypełniającego:
public String getTheObjectProperty()
{
return anObject.getAnObjectProperty();
}
Kiedy zapętlam kolekcję, używam klasy opakowującej, aby na przykład uniknąć drążenia obiektu w tabeli danych.
Ogólnie takie podejście wydaje mi się „właściwe”. Pozwala to uniknąć jakiegokolwiek sprzężenia między widokiem a danymi. Proszę popraw mnie jeżeli się mylę.