Mit JSF als view-Technologie von Spring MVC
Ich bin derzeit auf der Umsetzung eines kleinen Spring MVC PoC, und ich möchte mit JSF als view-Technologie, da die meisten Menschen in meinem Unternehmen verwendet werden, die auf einem J2EE mit Primefaces Umgebung.
Tut, Spring MVC 3, JSF-Unterstützung, oder einfach nur JSP? Ich habe gelesen mehrere Artikel, die das mischen der beiden.
Meine brauchen zu erstellen eine ansprechende Benutzeroberfläche. Gibt es eine einfache Möglichkeit, dies zu tun mit Spring MVC mit JSP als view-Technologie?
Unsere Anwendung verwendet die Zeitpläne/Kalender in vielfachen Seiten. Es ist im Grunde ein Zeit-management-APP
InformationsquelleAutor der Frage Astronaut | 2013-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du machst einen konzeptionellen Fehler. JSF ist nicht eine view-Technologie. JSF ist ein MVC-framework. Genau wie Spring MVC, allerdings haben Sie beide eine andere Ideologie; JSF-Komponenten-basierte MVC und Spring MVC request-basierten MVC. Damit sind Sie voller Konkurrenten. Sie können sich nicht vermischen. Sollten Sie die eine oder die andere. Stattdessen JSP und Facelets sind true view-Technologien. Seit Java EE 6 (Dezember 2009), JSP ist veraltet und ersetzt durch Facelets (XHTML) als Standard-view-Technologie für JSF.
Können Sie Spring MVC mit JSP-view-Technologie. Sie können auch Spring MVC mit Facelets-view-Technologie (und viele andere). Aber Sie können nicht mit Spring-MVC mit JSF-Komponenten geschweige denn mit JSF-Komponenten-Bibliotheken wie PrimeFaces. JSF-output-Komponenten funktionieren möglicherweise, werden aber JSF-Komponenten-Eingang funktioniert nicht bei allen. Spring MVC hat schon sein eigenes
<form:xxx>
- tags für die Eingabe. Auch, wenn Sie mischen Sie, werden Sie am Ende mit der Hälfte der Funktionen aus beiden frameworks in einer gemengt und verwirrend code-Basis. Dies ist nicht Sinn macht. Wenn alle Sie wollen, ist zu verwenden dieselbe Benutzeroberfläche wie PrimeFaces, nehmen Sie einfach jQuery UI. Es ist auch genau das, was PrimeFaces ist mit unter der Decke. PrimeFaces ist eine jQuery-basierte JSF-Komponenten-Bibliothek.Von der anderen Seite auf, kann es auch sehr gut, dass Sie verwirrt Spring IoC/DI mit Spring MVC. Spring IoC/DI ist wiederum verwendbar zusammen mit JSF. Sie können ersetzen Sie die JSF-managed-bean-facility (
@ManagedBean
und Freunde) von Frühjahr managed-bean-facility (@Component
und Freunde), in der Regel mit dem alleinigen Zweck, um@Autowired
in eine JSF-backing bean. Aber das ist es. Die JSF-MVC-framework Lebenszyklus der JSF-Komponenten und die view-Technologie bleiben unverändert. Die standard-Java-EE-äquivalent, das wäre mit CDI (und EJB).Die gleiche Geschichte gilt für Spring Security. Sie können es verwenden, zusammen mit JSF, Sie sollte jedoch nicht zu Folgen, Spring Security + Spring MVC gezielte Dokumentation/Beispiele, um es zu konfigurieren, aber nur von Spring Security + JSF ersetzen. Bitte beachten Sie, dass Spring Security constraints auf geschäftliche Handlungen nur dann funktioniert, wenn Sie ersetzen die JSF-managed-bean-facility von Spring managed bean-Anlage. So, dass wäre immer noch ein "Integrieren von Spring in JSF" wie beschrieben im vorigen Absatz. Die standard-Java-EE-äquivalent, dies alles wäre mit container managed security (JAAS/JASPIC) über
<security-constraint>
Einträge inweb.xml
.Die gleiche Geschichte gilt auch für Spring WebFlow. Sie nur müssen auch sicherstellen, dass Sie über die neueste version von Spring WebFlow, ältere Versionen führen Konflikte wenn Sie zusammen mit mehreren JSF-Komponenten-Bibliotheken. Außerdem, seit JSF 2.2, neue Faces Flows Funktion wurde eingeführt, als Teil der standard-Java-EE-API, die hiermit im Grunde macht Spring WebFlow überflüssig.
Dann gibt es Spring Boot. Dies muss nicht eine direkte Entsprechung in Java EE. Spring Boot grundsätzlich ermöglicht das ausführen von Java-EE-Anwendung mit einem einfachen Java-application-Klasse mit einem
main()
Methode "einfachen und abstrakten Form". Ohne Feder Boot ist es sicherlich möglich (sonst Spring Boot würde nie existiert haben), es ist nur ein bisschen mehr Arbeit als zu Konfiguration, wie Sie haben zu berücksichtigen, server-spezifische details, basierend auf seiner Dokumentation. Zum Beispiel: Sog und Jetty.Kommen wir zurück zu JSF und Spring MVC, wenn es wirklich notwendig ist, können Sie problemlos ausführen, Spring MVC und JSF nebeneinander in gleiche web-Anwendung, aber Sie werden nicht zusammenarbeiten, im server-Seite. Sie laufen völlig unabhängig voneinander. Werden Sie am meisten berühren einander in der client-Seite, wenn einige von JavaScript in der JSF-generierte HTML-Seite geschieht zum aufrufen einer Feder basierende REST-web-service-Aufruf in der gleichen web-Anwendung. Aber das Spring web-service wäre dann nicht mehr brauchen,/alles wissen über JSF um entsprechend zu reagieren. Die standard-Java-EE-äquivalent, Spring REST-webservice ist JAX-RS.
Die kommende Java EE 8 kommen mit einem neuen request-basierten MVC-framework, namens einfach "MVC", basierend auf den lehren der beiden JSF und Spring MVC, hiermit verdrängen Spring MVC und bietet eine standard-alternative zu JSF.
Siehe auch:
InformationsquelleAutor der Antwort BalusC
Spring MVC und JSF nicht wirklich mischen. Sie können die Verwendung von JSF für den view-bezogenen Projekten und haben Frühling verwalten und Draht gesichert (services, daos etc.). Aber, der versucht, @Controller mit JSF Seiten ist das nicht etwas, das wirklich funktioniert gut (neben, dass beide verschiedene Stapel Anfrage gegen component-based).
Integrieren Spring mit JSF, müssen Sie die
SpringBeanFacesELResolver
zu Ihrem faces-config.xml. Das wird lookup-Bohnen aus Federn Anwendungskontext. Damit dies funktioniert, müssen Sie verwenden plain JSF-Annotationen und nicht die CDI basierte Anmerkungen.InformationsquelleAutor der Antwort M. Deinum
Spring Webflow kann einer hier helfen. Schauen Sie sich dieses Beispiel-Projekt.
https://github.com/spring-projects/spring-webflow-samples/tree/master/primefaces-showcase
InformationsquelleAutor der Antwort Manoj Gupta