SpringMVC vs JSF

0

Czesc,
mam pytanie odnosnie roznic miedzy SpringMVC oraz JSF. Jakie są roznice miedzy nimi, wydaje mi sie ze sa one bardzo podobne. Ktora z nich jest popularniejsza i ma wieksze mozliwosci ??

1

Właściwie wspólne mają tylko tyle że oba służą do robienia frontendu w Javie ;]
Obie są dość popularne i mają duze możliwości. JSF jest częścią specyfikacji JEE więc jest popularniejszy w miejscach gdzie dużą wagę przykłada się do standardów -> np. banki
SpringMVC jest częścią konkurencyjnego dla JEE stosu Springa.

Pewna różnica jest taka że w SpringMVC naturalne jest tworzenie aplikacji w stylu request-response (chociaż można posiadać też obiekty sesyjne) podczas gdy w JSFie korzystanie z sesji jest bardziej naturalne.
Poza tym JSF ma coś takiego jak komponenty z których możesz korzystać w formatkach. W przypadku SpringMVC musisz zdać sie na korzystanie z javascriptu/jquery/yui itd.

Jeśli chodzi o logikę i przepływ sterowania to w SpringMVC sterowane jest zdefiniowane przez kod javowy (odpowiada on za to jakie operacje na modelu zostaną wykonane i jaki widok zostanie zwrócony), podczas gdy w JSFie wybór widoku jest określony za pomocą pliku xml, a kwestia operacji na modelu jest zawarta w obiektach łączących widok z modelem - managed beanach.

Wątpie żeby cokolwiek ci to pomogło jeśli nie napisałeś nic ani w jednym ani w drugim ;]

0

Podepnę się pod ten wątek, bo jeszcze ciepły, a mój problem dotyczy tego samego. Zamierzam przysiąść do swojego pierwszego poważniejszego projektu webowego, doświadczenie ze springiem i jsf mam niewielkie. Spring jest wymagany przy większości ofert o pracę, więc warto byłoby znać z kolei JSF + Primefaces ma wiele gotowych wodotrysków, które mogą nieco ułatwić pracę. Ktoś podpowie co tu zrobić aby wilk był syty i owca cała? Napisać dwa projekty, jeden w JSF, drugi w Springu?
Warstwą dostępu do danych będzie się zajmował Hibernate.

1

Ja ze swojej strony poleciłbym Springa, ale to dlatego że trochę bardziej przypadł mi do gustu. Jeśli chodzi o wodotryski to tak jak pisałem wcześniej, możesz użyć jQuery, YUI, dojo,ExtJS i innych bibliotek które za pomoca javascriptu dodają różne ładne rzeczy :)

1

Na początek poleciłbym PlayFramework o wiele prostszy do nauki.....jednak będziesz miał ten sam problem co w Spring MVC(też Action Based) czyli brak komponentów, a w Primefaces jest ich sporo......

1

Dodam tylko ze w JSF2.x nie trzeba definiowac regul nawigacji w XML - kazda akcja moze zwracac stringa, ktory jest nazwa kolejnego widoku. Cale aplikacje moga sie obejsc bez faces-config.xml i innych.

0

A pytanie troche z innej beczki. W momencie gdy pracodawca wymaga "Spring" to na ogol chodzi o co? o to zeby znac sie na aspektach ? templatach jdbc, hibernate, jpa czy o SpringMVC, webflow?

0

Zależy jakie to stanowisko i co oprócz tego jest wymagane. Minimum to zawsze IoC, Configuration, Data, Transaction. A jeśli ogłoszenie wyraźnie wskazuje na rozwiązania webowe to zapewne też MVC, Security i może Webflow (chociaż nie musi być to reguła, bo można z powodzeniem łączyć Springa np. z JSF)

0

dzieki, za informacje.

0
mućka napisał(a):

Dodam tylko ze w JSF2.x nie trzeba definiowac regul nawigacji w XML - kazda akcja moze zwracac stringa, ktory jest nazwa kolejnego widoku. Cale aplikacje moga sie obejsc bez faces-config.xml i innych.

Przepraszam, że odświeżam, ale nie spotkałem się z czymś takim. Czy to znaczy, że możemy mieć np. stronę page1 i na niej buttona:

<p:commandButton value="button" action="page2">

Czy ma ma być z końcówką xhtml? action="page2.xhtml"

i po wciśnięciu buttona przejdziemy na page2.xhtml? Dzięki czemu nie mamy potrzeby tworzenia pliku faces-config.xml?

1

Moze byc nawet: action="page2" poniewaz .xhtml jest domyslnie dodawane, jak zdaje sie pare innych suffiksow. Stornka page2 musi byc na tym samym poziomie co aktualna, w innym wypadku trzeba uzyc sciezek absolutnych lub wzglednych (z '../' itp).

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