Java Spring MVC+JSP optymalizacja frontendu

0

Witam,
Jestem w trakcie pisania aplikacji webowej (praca inżynierska), potrzebuję jednak małej porady, najpewniej dotyczącej frontendu (może trochę też backend).
W dużym skrócie aplikacja pisana jest w Javie (Spring MVC, Security, Hibernate), baza mysql, frontend obecnie jest w JSP+CSS+JS.

Problem opiszę na przykładzie zwykłego wyświetlania listy użytkowników:

Obecnie: wchodzę na jakąkolwiek stronkę np. z listą userów (kontroler przy pomocy DAO wrzuca listę userów do jsp). Fajnie, ale gdy chcę edytować wybranego usera/dodać nowego, to obecnie przez POST uruchamiam kontroler otwierający kolejną stronę z formatką (przesyłam id usera). Generalnie natworzenie sporej ilości różnych formularzy (poza rolami mam funkcje, firmy, dynamiczne menu pobierane z bazy, w przyszłości na podstawie ról wczytywanie/wyswietlanie danych z xls, xlsx) - każdy formularz powoduje przeładowanie całej strony, łączenie się z bazą - jak na początek cieszę się, że działa, ale jednak chciałbym to trochę zoptymalizować.

Wczoraj pomyślałem o takim rozwiązaniu:
Stronkę poprzez jsp:include dzielę na kawałki, przeładowuję tylko div'y (np. div z listą userów) - czyli unikam już pobierania niektórych danych z bazy (np. dynamiczne menu); niektóre strony w ten sposób scaliłbym i wyświetlił tylko ukryte div'y z formularzami (np. dodawanie usera - robię wyskakujące okienko zamiast kontrolera z 'get'em).
W podobny sposób obsłużyłbym edycję usera bez dodatkowego łączenia się z bazą - na stronę ładuję trochę więcej danych (+ modeli w kontrolerze) i w miarę potrzeb 'odkrywam/ukrywam' CSS'em/JS'em).

I tu pojawia się pytanie, czy to jest w miarę rozsądne rozwiązanie, czy może lepiej użyć jakiś framework oparty o JS, który działałby jako nakładka na jsp?

1

Nie widzę sensu używania JSP, to trochę cofnięcie się w czasie do okolic 2009 i tworzenia genialnych portali typu PKP(napisane w javie przy użyciu jsp) które się zawieszają przy każdej funkcjonalności, lepiej zrobić frontend w react czy angular

1

Rzeźba. Jsp:include raczej nic Ci nie da, ponieważ i tak będzie składana cała strona. Jakimś rozwiązaniem jest pójście w doładowywanie fragmentów strony AJAX-em. Angular czy React to przy takim setupie rewolucja, kiedyś się w to bawiłem - przesyłanie stanu formularza w hiddenie i takie tam - nie polecam.

0

Dziękuję za szybkie odpowiedzi - czyli brak doświadczenia skutkuje trochę średnim doborem technologii. :)

Pobieżna lektura skłania mnie ku Angular - czy jeśli bym się na niego zdecydował, a mam już zrobiony spory kawałek aplikacji w jsp, to czy dużo trzeba by przerabiać? Nie chciałbym pisać większości aplikacji od nowa, tym bardziej, że już teraz wszystko mam fajnie ułożone w Spring Security - czy chociaż back-end zostałby ten sam (może z kosmetycznymi zmianami)? Specyfiki frameworka jeszcze nie znam, a jedynym czynnikiem, który powstrzymywałby mnie od nauki 'od razu' to lekko ograniczony czas, w którym muszę oddać pracę. Tydzień mógłbym poświęcić na czystą naukę - wystarczy na podstawowe funkcjonalności (i reszta już na bieżąco douczana w trakcie pisania aplikacji?)?

0

Jeżeli niekoniecznie chcesz wjezdzac z tym Angularem w swiat JS, to moim zdaniem fajna alternatywą jest Thymeleaf + HTML. Ta dobrana para zapewni przyjemna integracje backendowego kodu Javy z frontem

0

Reacta da radę w dwa dni ogarnąć(przede wszystkim zarządzanie stanami i cykl życia komponentów) mając jakiekolwiek podstawy JS, ma bardzo niski próg wejścia by zacząć w nim robić fajne komponenty, polecam, nie wiem czy to nie za mała apka by wciskać tam machinerię angulara

0

Z drugiej strony Angulasz to w miarę kompletny framework, dla Javowca niski próg wejścia.

0

Relatywnie niskim wysiłkiem jesteś w stanie ogarnąć Thymeleaf'a i Bootstrapa do tego, Bootstrap ma bardzo przyjmną dokumentację więc nie powinieneś mieć z tym problemów. Zdecydowanie lepszy tandem niż pakowanie się w JSP

1 użytkowników online, w tym zalogowanych: 0, gości: 1