# Struts, Spring oder ... ?



## netspy (7. Jan 2007)

Ich bin gerade dabei ein neues Projekt (einen speziellen Online-Shop) zu entwickeln und da es absehbar ist, dass dieses Projekt etwas größer wird und später auch mehrere Leute daran mitarbeiten werden, möchte ich dies mit Java realisieren.

Nun stehe ich vor der Frage, welches Framework ich dazu verwende. Nachdem ich früher schon mal viel mit Java gearbeitet hatte, habe ich in den letzten Jahren fast ausschließlich PHP genutzt und bei Java etwas den Überblick verloren.

Angeschaut habe ich mir schon mal Struts, welches ja sehr mächtig, aber auch ziemlich kompliziert ist. Welche (möglicherweise besseren) Alternativen könnt ihr empfehlen? Gibt es evtl. auch Gegenüberstellungen von verschiedenen Frameworks im Netz?


----------



## Guest (7. Jan 2007)

http://www.ebookshare.net/index.php?s=Struts


----------



## netspy (7. Jan 2007)

Und wie beantwortet das jetzt meine Frage?


----------



## HLX (8. Jan 2007)

Struts ist überhaupt nicht kompliziert. Wenn man sich in eine neue Sache einarbeitet sieht das oft kompliziert aus. Um eine Einarbeitung in das Thema kommt man allerdings nie drumherum. Im Struts-Framework habe ich mich unter den mir bekannten Webframeworks (Struts/JSF/Cocoon) am schnellsten zurechtgefunden. 

Insgesamt habe ich mich mal mit den Webframeworks Struts, JSF, Cocoon, Webwork und Tapestry auseinandergesetzt. Prinzipiell gilt, dass fast jedes Framework in bestimmten Bereichen seine Vorteile hat, so dass es von den Anforderungen abhängt welches nun das Geeignetste ist. Anforderungen, die z.B. für Cocoon sprechen: XML-basiert, gute Unterstützung verschiedener Ausgabeformate (WML etc.). Dinge, die für dich eher weniger interessant sein sollten.  Ich glaube, dass Struts in den meisten Fällen eine sehr gute Wahl ist. Für "Standard"-Webprojekte wie Webshopts ist es auf jeden Fall sehr gut geeignet. Daher würde ich mal intuitiv sagen, dass es für dein Projekt das Richtige ist, es sei denn es gibt ein paar spezielle Anforderungen an deinen Shop, die von Struts eher schlechter erfüllt werden.

Spring kenne ich leider nicht.


----------



## KSG9|sebastian (8. Jan 2007)

Eine sehr gute Kombination ist imho folgende:

- Spring 
- JavaServer Faces
- JSF Facelets (wie Struts Tiles)

Und dann halt hinzufügen was du noch brauchst, z.B.

- Hibernate
- Velocity

Struts ist wirlich nicht kompliziert. Wenn du dich mal eingearbeitet hast geht es recht flott.
Ich mag aber eher JSF, da bei Struts recht viel Programmieraufwand durch die tausenden von Forms und Actions entsteht. Da ist JSF imho überlegen.
Kannst aber auf JSF mit Struts kombinieren.
Im Endeffekt gehts nur darum was du gerner machst. Für deine Anforderung kannst du mehrere Frameworks verwenden.
Struts wie auch JSF leistet da gute Arbeit.

JSF ist halt "neuer". Dafür etwas gewöhnungsbedürftig. Als Neueinsteiger macht's aber wohl keinen Unterschied zu Struts.
Und was du von Spring verwendest musst du halt schauen. Gibt ja mittlerweile zig Module für alle möglichen Dinge.


----------



## robertpic71 (9. Jan 2007)

Da möchte ich noch anmerken, dass JSF eventgesteuert funktioniert. D.h. man verwendet - ähnlich der Desktopprogrammierung - Komponenten, welchen man noch sagt, welche Javafunktionen/Beans für "Datenaustausch" und Events aufgerufen werden sollen. 

Vor allem Leute, welche aus der Desktopecke kommen, werden sich mit "evendriven" schneller anfreunden. Die Java Server Faces bieten außerdem noch Features wie Validierung.

Die Empfehlung meines Vortragenden (hält Java, Struts, JSF Kurse für IBM) für neue Anwendungen lautete eindeutig JSF.

Ich habe allerdings weder das Eine noch das Andere verwendet, sondern das AJAX-Framework   
ZK. Das finde ich persönlich einfacher als Swing und sehr nahe an der Desktopentwicklung.


----------

