JavaServer Faces (JSF), obecnie znane jako Jakarta Faces, to framework umożliwiający tworzenie interfejsów użytkownika dla aplikacji webowych w języku Java. Jego głównym założeniem jest oddzielenie warstwy prezentacji od logiki biznesowej, co pozwala na łatwiejsze utrzymanie, testowanie oraz rozwój aplikacji. JSF umożliwia również zarządzanie stanem aplikacji, co oznacza, że można zapisywać i przywracać stan komponentów interfejsu użytkownika pomiędzy żądaniami HTTP.

Wraz z przejściem platformy Java EE pod skrzydła Eclipse Foundation, JSF zostało przemianowane na Jakarta Faces (od wersji 3.0) i używa teraz przestrzeni nazw jakarta.faces.* zamiast wcześniejszego javax.faces.*.

 

Struktura JavaServer Faces

JavaServer Faces opiera się na wzorcu projektowym MVC (Model-View-Controller). Oznacza to, że aplikacja jest logicznie podzielona na:

  • Model – logika biznesowa i dane (np. JavaBeans, EJB, JPA).
  • View – warstwa prezentacji (pliki .xhtml, komponenty UI).
  • Controller – sterowanie przepływem (np. kontrolery zarządzające danymi z formularzy).

 

Struktura projektu JSF powinna odzwierciedlać ten podział, co ułatwia modularność, ponowne wykorzystanie komponentów i testowanie.

 

Czy szukasz wykonawcy projektów IT ?
logo

Edycja widoków JSF

Widoki w JSF tworzy się za pomocą plików XHTML, które zawierają specjalne znaczniki JSF, takie jak <h:form>, <h:inputText>, <h:dataTable>, itp. Dzięki temu możliwa jest dynamiczna budowa interfejsu przy użyciu komponentów serwerowych.

Popularne biblioteki rozszerzające możliwości JSF to:

  • PrimeFaces – najczęściej używana, oferuje ponad 100 gotowych komponentów UI.
  • OmniFaces – rozszerza funkcjonalność standardowego JSF.
  • BootsFaces i ButterFaces – integracja z Bootstrapem.
BoringOwl_programming_developer_in_front_of_the_computer_in_sim_2719f586-aa1e-4fac-a0a9-61cdd4b28818.png

Zarządzanie danymi w JSF

JSF zapewnia różne mechanizmy do zarządzania danymi:

  • Data Binding – powiązanie komponentów formularzy z atrybutami klas JavaBeans.
  • Zarządzanie stanem – dane mogą być przechowywane po stronie klienta (client-side state saving) lub po stronie serwera (server-side).
  • Scope'y – obsługuje różne zasięgi (@RequestScoped, @ViewScoped, @SessionScoped, @ApplicationScoped) umożliwiające kontrolę czasu życia danych.

 

CDI (Contexts and Dependency Injection) jest dziś domyślnym sposobem zarządzania beanami w JSF.

 

Wsparcie i przyszłość

Mimo że JSF nie jest już „modnym” wyborem w porównaniu z rozwiązaniami typu Spring Boot + REST API + frontend (React/Angular), nadal ma silne zastosowanie w projektach korporacyjnych. Dzięki PrimeFaces i OmniFaces, możliwe jest tworzenie złożonych interfejsów bez pisania kodu JavaScript.

Od wersji Jakarta Faces 4.x, framework nadal jest rozwijany, ale warto pamiętać, że jego ekosystem zmierza w stronę integracji z nowoczesnymi rozwiązaniami chmurowymi i kontenerowymi.

 

Podsumowanie

JavaServer Faces (obecnie Jakarta Faces) to stabilny i dojrzały framework do budowy aplikacji webowych w Javie. Dzięki podziałowi na warstwy, integracji z CDI, obsłudze AJAX i bogatym bibliotekom komponentów, JSF nadaje się szczególnie dobrze do budowy rozbudowanych systemów o długim cyklu życia.

Nasza oferta

Powiązane artykuły

Zobacz wszystkie artykuły powiązane z #Back-end