Struts 2 – Das Imperium schlägt zurück? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Tobias Kieninger <[email protected]> www.oio.de [email protected] Java, XML und Open Source seit 1998 ) Software Factory ) ) Object Rangers ) • Schlüsselfertige Realisierung von Java Software • Unterstützung laufender • Individualsoftware • Pilot- und Migrationsprojekte • Sanierung von Software • Software Wartung • Perfect Match • Rent-a-team • Coaching on the project • Inhouse Outsourcing © 2009 Orientation in Objects GmbH Java Projekte ) Competence Center) • Schulungen, Coaching, Weiterbildungsberatung, Train & Solve-Programme • Methoden, Standards und Tools für die Entwicklung von offenen, unternehmensweiten Systemen Struts 2 – Das Imperium schlägt zurück? 2 1 Tobias Kieninger Im a pogramar Iam a programer I'm a programor I write code Beratung Projekte Training © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 3 Struts 2 – Das Imperium schlägt zurück? 4 Gliederung • • • • Warum wir hier sind Erster Kontakt Migration impossible? Resümee © 2009 Orientation in Objects GmbH 2 Struts 1 • Historie – Struts 1.0.2 Feb 2002 – Struts 1.1 Juni 2003 – Bis heute Struts 1.3.10 (Dez 2008) • Vorteile – Lange Zeit defacto Standard – Grosse Community und flächendeckender Einsatz • Nachteile – – – – ActionForms sind unbeliebt Zu wenig Pojofiziert Wird oft als „Tod“ bezeichnet Actions kaum testbar © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 5 Struts 2 – Ein junges altes Framework • Kombination aus Struts und OpenSymphony Webwork • Voraussetzungen: – Servlet API 2.4 – JSP API 2.0 – Java 5 • Aktuelle Version 2.1.16 – Jan 2009 © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 6 3 Verbesserungen in Struts 2 • • • • • • • • • • POJOs, juhu! Mehr Flexibiltät bei der Ausgabe Gute Standardeinstellungen Java 5 Annotations sind möglich Die unbeliebten ActionForms sind weg Stateful Checkboxes Einfache PlugIns Guter AJAX Support Verbesserte Testbarkeit … Struts 2 – Das Imperium schlägt zurück? © 2009 Orientation in Objects GmbH 7 Lifecycle Struts 1 Servlet Container Request ActionServlet Action Business Logik Bean Bean Response © 2009 Orientation in Objects GmbH Bean FormBean JSP Struts1 Taglibs Bean Struts 2 – Das Imperium schlägt zurück? 8 4 Lifecycle Struts 2 Servlet Container Action Interceptor Response Struts 2 FilterDispatcher Request View Struts2 Tags JSP Business Logik Action Model … Value Stack © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 9 Struts 2 - Action public class LoginAction extends Action { private String username; private String password; public String execute() throws Exception { if (isInvalid(...)) return INPUT; return SUCCESS; } public void getUsername() { ...} public void setUsername(String username) { ...} ... } © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 10 5 Struts 2 - struts.xml © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 11 Struts 2 – Das Imperium schlägt zurück? 12 Struts 2 - View © 2009 Orientation in Objects GmbH 6 Validierung Struts 2 – Das Imperium schlägt zurück? © 2009 Orientation in Objects GmbH 13 Interceptoren • Komponente wird vor und nach der Verarbeitung aufgerufen • Muss threadsave sein • Wird verwendet für © 2009 Orientation in Objects GmbH Interceptor Validierung Doppelten Submit verhindern Authentifizierung Typkonvertierung Session Handling Debugging FileUpload ExcecAndWait … FilterDispatcher – – – – – – – – – … Struts 2 – Das Imperium schlägt zurück? 14 7 Was isch denn hier passiert? © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 15 Migration possible? • Ist die Migration zu Struts 2 – Einfach? – Sinnvoll? • Strategien spärlich – Struts 2 parallel zu Struts 1 – Schreib es neu! – Nimm den “conversion wizard”… • Migration Tutorials sind ergiebiger – Migration by Ted Husted Quelle: http://struts.apache.org/2.0.11.1/docs/migration-strategies.html © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 16 8 Und nun? • Webframeworkwahl insgesamt schwierig • Stellenausschreibungen monster.de zum 21.04.2009 – Struts: 119 – JSF: 102 – Struts 2: 0 • Viele neue Möglichkeiten mit Struts 2 – Für Struts 1 Entwickler ein Schritt nach vorn • Noch zu wenig Dokumentation • Ist Struts 2 das Richtige für Sie? – – – – Welcher Typ Anwendung wird benötigt? Welche Features werden benötigt? Vorkenntnisse der Entwickler? Wie entwickelt sich die Community? © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 17 Links • Struts 2 http://struts.apache.org/2.0.11.1/index.html • Migrating to Struts 2 (Ted Husted) http://www.strutsuniversity.org/Migrating%20Tutorial • Migrating Applications to Struts 2 (Ian Roughley) http://www.infoq.com/news/migrating-struts2 © 2009 Orientation in Objects GmbH Struts 2 – Das Imperium schlägt zurück? 18 9 Vielen Dank für Ihre Aufmerksamkeit ! Tobias Kieninger <[email protected]> Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Mehr von OIO zum Thema... • Struts Consulting – http://www.oio.de/beratung-consulting/open-source-software/javaframeworks/struts-consulting.htm • Artikel: Struts vs. Cocoon – http://www.oio.de/m/mvc/index.htm • Vortrag: Struts oder JavaServer Faces - Part 1 – http://www.oio.de/m/konf/jax2005/JSF_WA4.pdf • Vortrag: Struts oder JavaServer Faces - Part 2 – © 2009 Orientation in Objects GmbH http://www.oio.de/m/konf/jax2005/JSF_WA5.pdf Struts 2 – Das Imperium schlägt zurück? 10