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 ??
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 ;]
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.
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 :)
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......
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.
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?
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)
dzieki, za informacje.
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?
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).