Witam,

Ostatnio zacząłem uczyć się Wicketa. W ramach zdobycia praktycznych umiejętności postanowiłem przepisać swoją starą aplikację ewidencji książek do formy webowej. Pierwszym problemem jest formularz dodawania nowej pozycji. Składa się on z piętnastu kontrolek, od zwykłych pól tekstowych po pola wyboru zawierające skojarzone z książką encje (np. gatunek literacki, wydawnictwo, autor - w przypadku tego ostatniego jest relacja wiele do wielu). Mam kilka wątpliwości:

  1. Czy budowę tak złożonego obiektu można rozbić na kilka formularzy, następujących jeden po drugim po kliknięciu przycisku "dalej" i odświeżeniu panelu (WebMarkupContainer?) przy pomocy Ajaksa? Czy może formularz wymaga, by obiekt zbudował się w całości za jednym requestem? W Swingu było to banalne: każda kontrolka miała osobnego listenera, który wysyłał informacje do znajdującego się w warstwie biznesowej budowniczego książki.

  2. Na ile możliwe jest skopiowanie do wersji webowej całej warstwy biznesowej, domenowej i dostępu do danych bez żadnych modyfikacji? Nadmieniam, że nie mają one żadnej "wiedzy" na temat warstwy prezentacji, to one są przez nią wywoływane za pośrednictwem fasady. Moje wątpliwości wynikają z różnic w specyfice aplikacji webowych (bezstanowość, sesyjność etc.), w której nie czuję się jeszcze swobodnie.

  3. Jak zadbać o właściwą integrację z Hibernate, ze szczególnym uwzględnieniem problemów z wyjściem obiektów poza Session scope?

  4. Przy użyciu jakiej kontrolki najlepiej jest oprogramować wybór autorów książki? Lista jest długa (kilkaset pozycji i nadal rośnie), wybór jest wielokrotny (wiele do wielu). W Swingu poradziłem to sobie w dość toporny sposób przy użyciu JComboBoxa i JButtona, który dodawał po kolei autorów do specjalnego schowka, który w momencie zakończenia edycji został wysyłany do budowniczego.