Projekt w Javie EE bez JSF.

0

Witam. Jeśli pisałem coś w JEE to korzystałem z domyślnych technologii czyli EJB, JSF, JPA itd. Jednak bardzo często było pisane na forum, że z JSF rzadko się korzysta, tak samo, że nie pisze się serwletów. Moje pytanie jest następujące, w jaki sposób najczęściej się pisze aplikacje w Javie EE. Załóżmy, że chciałbym użyć CDI ale bez JSF i nie pisać samemu żadnych serwletów. Czego używa się najczęściej i w jaki sposób? Załóżmy mam taki bean CDI

@Named
@RequestScoped
public class UserBean implements Serializable {
  
  public String action(){
        return "page2";
  }
  
} 

i chcę tego beana użyć na stronie:

<input type="button" value="Go" action="#{userBean.action}"/>

żeby mnie po prostu przekierowało na inną stronę, ale jak to zrobi skoro nie mam JSF? Czego używać jeśli nie JSF, który pełni rolę kontrolera i używa swojego serwletu do przetwarzania żądań? Jakie są najczęstsze rozwiązania?

1

rest webservice i angular

1

PrimeFaces, Play, BootsFaces itd.

Ale ogólnie rzecz biorąc to nie wiem skąd to twierdzenie, że się nie używa JSF.

1

Nie używa się JSP, może ci się pomyliło.

Możesz wystawić RESTa używając JAX-RS i obsłużyć go jakimś frameworkiem JSowym, np. angularem jak radzi ci Pomidor.

0
vpiotr napisał(a):

PrimeFaces, Play, BootsFaces itd.

Ale ogólnie rzecz biorąc to nie wiem skąd to twierdzenie, że się nie używa JSF.

"Przeleciałem" parę firm w Małopolsce i Podkarpaciu - większość używa JSF (PrimeFaces) w lagecy appkach - wszystkie nowe to rest i angular ;] (choć dużo już zmienia z jee na spring boot i ogólnie springa).

Ale oczywiście to moja opinia - Twoja może być inna.

Pozdrawiam i miłej niedzieli.

1

Głupio byłoby nie używać technologii, która drastycznie przyspiesza pracę. Zwłaszcza, że do JSF powstają frameworki typu PrimeFaces. Większość krytyków JSF to osoby, które za dużo w tym nie pisały / robiły to 10 lat temu / powtarzają bezmyślnie to co przeczytali w necie / nie potrafią w tym pisać / używają tego niezgodnie z przeznaczeniem i robią sobie kuku.

W JSP już się nie piszę (chyba, że utrzymuje się i rozwija stare aplikacje). Ale ta technologia poza utrzymaniem wróci w MVC:
http://www.adam-bien.com/roller/abien/entry/playing_with_model_view_controller
Wiadomo będą też inne technologie widoku jak Velocity. IMO JSF jest jednak szybsze dla typowych, wewnętrznych aplikacji.

Spotykało się sporo aplikacji korzystających ze Struts2, ale nie wiem czy jest to wciąż wybierane do nowych projektów. Coraz popularniejszym konkurentem JSF jest Vaadin. Ale do małych rzeczy, dla mocno obciążonych witryn jest zbyt mocno server-side (bardziej niż PrimeFaces).

AngularJS to nie jest bezpieczny wybór do dużego projektu: duże koszty migracji w przyszłości. Do małych jak najbardziej. I mobilnych klientów (Ionic).

Poza tym konkurentem JSF jest JAX-RS. Jak chcesz mieć odpowiednik Spring MVC (który jest znacznie mniej popularny niż JSF) możesz użyć:
https://jersey.java.net/documentation/latest/mvc.html

0
margor90 napisał(a):

konkurentem JSF jest JAX-RS

WTF?

0

MVC to osobna specyfikacja, ktora korzysta z JAX-RS. Sam JAX-RS (JSR 339) to nic wiecej niz REST web services, nie majace zadnego zwiazku z technologiami mvc widokami itp. Widac nie zrozumiales tego co pan Bien mowi, nic dziwnego, jego angielski jest bardzo ... niemiecki.

0

Z JSR 371: Goal 4 Explore layering on top of JAX-RS for the purpose of re-using its matching and binding layers.

0

Zgoda Jersey MVC (bo to dodatek do implementacji) to coś więcej jak JAX-RS (bo to specyfikacja). Tak samo można mówić, że Hibernate to coś więcej jak JPA.

Sam JAX-RS (JSR 339) to nic wiecej niz REST web services, nie majace zadnego zwiazku z technologiami mvc widokami itp.

Sam JAX-RS nie istnieje bo to tylko specyfikacja na papierze. W przypadku implementacji np. Jersey sa juz widoki, ale to rozszerzenie nieopisane przez specyfikacje JAX-RS.

0

Hibernate i JPA to co innego - hibernate jest provieder JPA, jest bo bezposrednia relacja.
Ty pisales o JAX-RS dlatego moj WTF, nie pisales o Jersey i cokolwiek oni tam robia z widokami.

Porownanie JSF i JAX-RS (bo przeciez na nim mozna postawic JSR-371/MVC/Jersey MVC/whatever) to jak porownanie np. makaronu i mąki - bo przeciez z maki mozna zrobic chleb, a i makaron i chleb to glowne zrodla weglowodanow i sa dla siebie konkurencja. Albo SQL servera i linuxa - bo przeciez na linuksie mozna postawic Postgresa.

0

Widac ze korzystasz z Jersey - zatem zrozumiesz, ze relacja Hibernate (impl) i JPA (spec) to jak Jersey/RESTeasy (impl) i JAX-RS (spec).

0

Racja, gdybym od razu napisał Jersey MVC (JAX-RS + widoki) zamiast JAX-RS to nie byłoby konsternacji. W zasadzie chciałem tylko napisać, że Jersey MVC to taka alternatywa dla Spring MVC, nie więcej. No nic, miłej niedzieli.

0

Sam dotąd pisząc w JEE używałem tylko JSFa i Primefaces i powiem szczerze, że byłem z niego bardzo zadowolony zwłaszcza, że nie lubiłem za bardzo dłubać w interfejsie a w JSFie robi się to bardzo szybko i przyjemnie. Tylko właśnie gdzieś tutaj na forum kilkakrotnie widziałem stwierdzenie, że JSF nie jest zbyt popularny i rzadko się go używa.

0
olek1 napisał(a):

Sam dotąd pisząc w JEE używałem tylko JSFa i Primefaces

Skoro uzywales tylko JSF i nic innego (Primefaces to 'tylko' biblioteka komponentow dla JSF) , to skad masz miec porownanie i doswiadczenie niezbedne aby ocenic co jest wygodne w uzywaniu a co nie? Do kazdego sposobu, jakby nie byl zly i pracochlonny*, czlowiek sie przyzwyczai nie majac porownania z niczym innym, bo zaklada, ze tak musi byc i juz. Poprobuj, poczytaj, porob tutki, i wtedy ocen sam.

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