Eure Erfahrungen mit Primefaces und Spring - wer managed die Beans

robertpic71

Bekanntes Mitglied
Während bei vielen Projekten die GUI eh vorgegeben ist (Freemarker+Javascript, GWT, JSP) habe ich bisher
für kleiner Projekte immer ZK (zkoss.org - vom Konzept ähnlich Vaadin) verwendet. Dessen OpenSource-Teil kann immer weniger,
und für Nebenschauplätze ist uns die Lizenz zu teuer.

Also Anforderungen sind fast immer:
irgendetwas aus einer Datenbank anzeigen (zum Teil JPA-Definitionen, Serviceklassen vorhanden) ggfs. etwas ändern
und/oder auslösen

Ich habe ein kleines Logistik-Projekt (3 Webseiten, 2 Datenbanken, D365 REST-Anbindung, Lager-Anbindung) mit
Primefaces, JSF und Spring gemacht. Hat eigentlich alles so geklappt wie vorgestellt - vor allem das Ajax-Update
der offenen Arbeiten hat sofort funktioniert (primefaces poll).

Meine Views/Controller sind jetzt von Spring verwaltet (ELResolver)
@Controller
@Scope("session")

Serivceklassen werden mit @Autowired "injiziert".

Was mich irritiert, dass fast alle Beispiele im Internet die JSF Annotationen verwenden.
Verwendet ihr JSF/xxxFaces und Spring? Und wenn ja, wer verwaltet die Beans?
 

Oneixee5

Top Contributor
GUI eh vorgegeben ist (Freemarker+Javascript, GWT, JSP)
Wer macht denn sowas noch? Das war vor 10 Jahren schon out!

JSF Annotationen verwenden - halte ich für ein Gerücht. Es gibt viele Implementierungen von @Controller, @Autowired usw. Es kommt darauf an, aus welchem Package/Framework die stammen. Nur weil die gleich geschrieben werden, ist es noch lange nicht gleich implementiert. Annotations sind im Prinzip nur Interfaces, die selbst gar nichts machen.
Du bist Mitglied im Forum seit Jun 2005 - du hast noch nie eine Annotation selbst programmiert?
 

robertpic71

Bekanntes Mitglied
Wer macht denn sowas noch? Das war vor 10 Jahren schon out!
Naja, wenn die Projekte noch länger bestehen, kann das schon mal vorkommen. Abgesehen davon gibt es da durchaus aktuelle Projekte z.B. GWT Material Design mit welchen man das zeitgemäß/responsive aussehen lassen kann. Aber es geht mir hier nicht um alte Projekte.

Das man Annotationen selber machen kann bzw. überschreiben ist mir klar. Aber die Annotationen sind ja nicht der einzige Indikator. Fast alle Tutorien für Primefaces sind ohne Spring.

Deshalb die Frage hier, wer macht so was? wer macht die DI? selber, Spring usw.
oder verwendet jemand z.B. JoinFaces mit Spring Boot?

Du bist Mitglied im Forum seit Jun 2005 - du hast noch nie eine Annotation selbst programmiert?
Danke, jetzt weiß ich wieder warum ich dem Forum so lange ferngeblieben bin. Man bekommt keine Hilfe, wird aber für alte Projekte blöd angequatscht.
 

KonradN

Super-Moderator
Mitarbeiter
Das Problem ist aus meiner Sicht, dass es halt doch eher veraltete Technologie ist und damit immer weniger Leute etwas machen und Erfahrung haben.

Was Dir evtl. helfen kann:
JSF 2.2 and PrimeFaces 5 on Spring Boot (beyondjava.net)
stephanrauh/JSF-on-Spring-Boot: Small template projects to get started with JSF and Spring Boot quickly. (github.com)

Ist halt alles alt und die Frage ist, ob dies noch bezüglich der Updates aktuell ist.

Bezüglich DI ist bei dem Autor die Meinung, dass man dies komplett Spring überlassen sollte. Das heisst nicht, dass es nicht auch anders geht, aber das ist halt seine Lösung:
Yeah, it isn't hard to guess: Spring Boot runs on Spring. So you can use everything Spring offers in your JSF application. If you're into CDI, you're out of luck: they didn't create Spring Boot for you. The article I already mentioned at the beginning (Application Servers are dead! (Sort of)) shows you a couple of alternatives to Spring Boot.

If you stick to Spring, you ought to consider not to use @ManagedBeans at all. Add the SpringELResolver to the faces-config.xml, and you can use Spring Beans instead of JSF beans. I demonstrate this approach in several examples of the advanced template project.

Aber so wie ich Dich verstanden habe, ist das auch der Weg, den Du gegangen bist mit dem ELResolver. Daher sollte das doch ok sein. Oder welche Probleme hast Du da konkret?

Bezüglich Annotations kann ich jetzt nichts sagen, denn ich weiss nicht, was Du an Beispielen gefunden hast und welche Annotations da an welcher Stelle wie benutzt wurden. Da wäre es hilfreich, wenn Du uns entsprechende Links als Grundlage geben würdest. Dann kann man da ggf. etwas zu sagen.

Generell gilt halt: Je konkreter Deine Informationen sind, desto besser wird Dir jemand helfen können. Wenn Du ungenau bist, dann darfst Du Dich nicht beschweren, wenn die Antworten nicht so ausfallen, wie Du sie Dr erhofft hast. Da hilft dann aber auch nur, konkreter zu werden um die, die sich die Zeit für Dich nehmen, zu führen. Da sollte man zumindest versuchen, patzige Antworten sein zu lassen, denn das wird vor allem Dich nicht weiter bringen. Und es hält Andere eher davon ab, Zeit in eine Antwort zu investieren. Aber das einfach nur als meine Sicht - das ist nur als kleiner, freundlicher Hinweis gedacht und nicht als Grundlage für eine entsprechende Diskussion.
 

robertpic71

Bekanntes Mitglied
Aber so wie ich Dich verstanden habe, ist das auch der Weg, den Du gegangen bist mit dem ELResolver. Daher sollte das doch ok sein. Oder welche Probleme hast Du da konkret?
Danke, schon mal für die ausführliche Antwort. Prinzipiell habe ich alle bis alle Problem lösen können. Allerdings war ich etwas überrascht, von den teilweise offenen Problemen (ViewExpiredException bei Serverseitigen STATE_SAVING_METHOD, wurde ungelöst geschlossen) und der Work-a-round (speichern im CLIENT) macht bei neueren Versionen JSF-Implantationen auch Probleme - da jetzt verschlüsselt wird (ERROR: MAC did not verify!). Der Vollständigkeit halber: die Probleme hat man hauptsächlich bei Ajax-Zugriffen

Bei meinen Nachforschungen (auch zu anderen PF Programmieraufgaben) waren gefühlt > 90% ohne Spring-Hintergrund.

Deshalb meine Zweifel, ob das eine oft verwendet Kombination ist und daraus die Frage "Verwendet ihr JSF/xxxFaces und Spring?".
Nach etwas weiterer Recherche scheint mir, dass es für Spring-Boot zumindest eine schlüsselfertige Lösung gibt ( JoinFaces).
 

Neue Themen


Oben