Struts 2 im Einsatz:
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
München
Hanser
2008
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XXIII, 454 S. graph. Darst. 25 cm |
ISBN: | 9783446415751 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035106714 | ||
003 | DE-604 | ||
005 | 20081202 | ||
007 | t | ||
008 | 081017s2008 gw d||| |||| 00||| ger d | ||
016 | 7 | |a 98852855X |2 DE-101 | |
020 | |a 9783446415751 |9 978-3-446-41575-1 | ||
035 | |a (OCoLC)315975459 | ||
035 | |a (DE-599)DNB98852855X | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BY | ||
049 | |a DE-19 |a DE-12 |a DE-91G |a DE-210 |a DE-473 |a DE-83 |a DE-29T |a DE-355 | ||
082 | 0 | |a 006.78 |2 22/ger | |
084 | |a ST 252 |0 (DE-625)143627: |2 rvk | ||
084 | |a ST 253 |0 (DE-625)143628: |2 rvk | ||
084 | |a DAT 68f |2 stub | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 677f |2 stub | ||
100 | 1 | |a Brown, Donald |e Verfasser |0 (DE-588)136449026 |4 aut | |
240 | 1 | 0 | |a Struts 2 in action |
245 | 1 | 0 | |a Struts 2 im Einsatz |c Donald Brown ; Chad Michael Davis ; Scott Stanlick |
264 | 1 | |a München |b Hanser |c 2008 | |
300 | |a XXIII, 454 S. |b graph. Darst. |c 25 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Struts |0 (DE-588)4731453-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Struts 2 |0 (DE-588)7660856-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Struts 2 |0 (DE-588)7660856-6 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Struts |0 (DE-588)4731453-9 |D s |
689 | 1 | |8 1\p |5 DE-604 | |
700 | 1 | |a Davis, Chad Michael |e Verfasser |4 aut | |
700 | 1 | |a Stanlick, Scott |e Verfasser |4 aut | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=3098989&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016774611&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-016774611 |
Datensatz im Suchindex
_version_ | 1805091253885337600 |
---|---|
adam_text |
Inhalt
Vorwort.1
Danksagungen.1
Über dieses Buch.1
Teil 1: Struts 2 - Ein brandneues Framework.1
1 Struts 2 - Das moderne Framework für Webanwendungen.3
1.1 Webanwendungen - Ein kurzer Überblick.4
1.1.1 Das Internet zum Erstellen von Anwendungen einsetzen.4
1.1.2 Die technologische Basis.4
1.1.3 Inspektion des Arbeitsbereichs.9
1.2 Frameworks für Webanwendungen.11
1.2.1 Was ist ein Framework?.11
1.2.2 Warum man mit einem Framework arbeiten sollte.12
1.3 Das Framework von Struts 2.13
1.3.1 Ein kurzer historischer Abriss.13
1.3.2 Struts 2 aus 10.000 Metern Höhe: Das MVC-Muster.14
1.3.3 Wie Struts 2 arbeitet.17
1.4 Zusammenfassung.21
2 Struts 2 - Der erste Kontakt.23
2.1 Deklarative Architektur.24
2.1.1 Zwei Arten der Konfiguration.24
2.1.2 Zwei Mechanismen zur Deklaration der Architektur.25
2.1.3 Intelligente Defaults.28
2.2 Hello auf die Schnelle.29
2.2.1 Deployment der Beispielanwendung.29
2.2.2 Die HelloWorld-Anwendung.34
2.3 Hello World mit Annotationen.41
2.4 Zusammenfassung.44
Teil 2: Zentrale Konzepte: Actions, Interceptors und Typkonvertierungen.45
3 Die Arbeit mit Actions.47
3.1 Die Actions in Struts 2.48
3.1.1 Was macht eine Action?.48
3.2 Verpacken der Actions.50
3.2.1 Das Struts 2 Portfolio.51
3.2.2 Die Organisation der Pakete.51
3.2.3 Die Arbeit mit den Komponenten des struts-default-Pakets.54
3.3 Implementierung von Actions.56
3.3.1 Das optionale Action-Interface.57
3.3.2 Die ActionSupport-Klasse.58
3.4 Daten auf Objekte transferieren.66
3.4.1 Objekt-gepufferte JavaBeans-Properties.67
3.4.2 ModelDriven-Actions.69
3.4.3 Domänenobjekte für Datentransfer - Eine Abschlussbemerkung.71
3.5 Dateiupload - Eine Fallstudie.72
3.5.1 Eingebauter Support über das Paket struts-default.73
3.5.2 Was macht der fileUpload-Interceptor?.73
3.5.3 Der Beispielcode von Struts 2 Portfolio.74
3.6 Zusammenfassung.77
4 Den Workflow mit Interceptors ergänzen.79
4.1 Abfangen von Anfragen.80
4.1.1 Das MVC aufräumen.80
4.1.2 Die Vorteile einfahren.82
4.1.3 Erstellen von Interceptors.83
4.2 Interceptors im Einsatz.84
4.2.1 Die Chefin: Actionlnvocation.84
4.2.2 Wie die Interceptors feuern.84
4.3 Die in Struts 2 integrierten Interceptors.87
4.3.1 Utility-Interceptors.88
4.3.2 Interceptors für den Datentransfer.88
4.3.3 Workflow-Interceptor.90
4.3.4 Weitere Interceptors.95
4.3.5 Integrierte Stacks.97
4.4 Deklaration von Interceptors.97
4.4.1 Deklaration einzelner Interceptors und Interceptor-Stacks.98
4.4.2 Interceptors auf Actions mappen.100
4.4.3 Setzen und Überschreiben von Parametern.101
4.5 Erstellen eigener Interceptors.102
4.5.1 Implementierung des Interceptor-Interface.102
4.5.2 Der Authenticationlnterceptor.103
4.6 Zusammenfassung.107
5 Datentransfer-OGNL und Typkonvertierung.109
5.1 Datentransfer und Typkonvertierung: Übliche Aufgaben bei Webanwendungen.110
5.2 OGNL und Struts 2.111
5.2.1 Die Aufgabe von OGNL.111
5.2.2 Wie passt OGNL in das Framework?.113
5.3 Integrierte Typkonverter.116
5.3.1 Konvertierungen out ofthe box.117
5.3.2 Formularfeldnamen mit OGNL-Ausdrücken auf Properties mappen.118
5.4 Eigene Typkonvertierungen.131
5.4.1 Implementierung eines Typkonverters.132
5.4.2 Konvertierung zwischen Strings und Circles.133
5.4.3 Konfiguration des Frameworks zur Arbeit mit dem Konverter.134
5.5 Zusammenfassung.136
Teil 3: Die View erstellen - Tags und Results.139
6 Die View erstellen - Tags.141
6.1 Auf die Plätze.142
6.1.1 Der ActionContext und OGNL.142
6.1.2 Der ValueStack-Ein virtuelles Objekt.146
6.2 Die Tags von Struts im Überblick.148
6.2.1 Die Syntax der Tag-API von Struts 2.148
6.2.2 Attribute für Tags mit OGNL setzen.150
6.3 Daten-Tags.153
6.3.1 Das property-Tag.154
6.3.2 Dasset-Tag.154
6.3.3 Daspush-Tag.156
6.3.4 Dasbean-Tag.157
6.3.5 Das action-Tag.160
6.4 Control-Tags.162
6.4.1 Das iterator-Tag.162
6.4.2 Die Tags if und eise.164
6.5 Verschiedene andere Tags.164
6.5.1 Das include-Tag.165
6.5.2 Das URL-Tag.166
6.5.3 Die Tags il8n und text.167
6.5.4 Dasparam-Tag.169
6.6 Die Verwendung von JSTL und anderen nativen Tags.170
6.7 Kurze Einführung in die Ausdruckssprache OGNL. 170
6.7.1 Was ist OGNL?.170
6.7.2 Häufige Features einer Ausdruckssprache in Struts 2.171
6.7.3 Fortgeschrittene Features der Ausdruckssprache.177
6.8 Zusammenfassung.180
7 Ul-Komponenten-Tags.183
7.1 Warum wir UI-Komponenten-Tags brauchen.184
7.1.1 Mehr als nur Formularelemente.184
7.2 Tags, Templates und Themes.190
7.2.1 Tags.192
7.2.2 Templates.192
7.2.3 Themes.193
7.3 Referenz der Tags der UI-Komponenten.195
7.3.1 Allgemeine Attribute.195
7.3.2 Einfache Komponenten.197
7.3.3 Von Collections gepufferte Komponenten.209
7.3.4 Bonus-Komponenten.218
7.4 Zusammenfassung.220
8 Results unter der Lupe.223
8.1 Leben nach der Action.224
8.1.1 Jenseits der Seite - Wie man mit eigenen Results Ajax-Anwendungen
in Struts 2 erstellt.225
8.1.2 Implementierung eines JSON-Result-Typs.226
8.2 Häufig verwendete Result-Typen.235
8.2.1 Der RequestDispatcher alias Dispatcher.236
8.2.2 Das ServletRedirectResult alias redirect.242
8.2.3 Das ServletActionRedirectResult alias redirectAction.245
8.3 JSP-Alternativen.247
8.3.1 VelocityResult alias velocity.247
8.3.2 FreemarkerResult alias freemarker.249
8.4 Globale Results.251
8.5 Zusammenfassung.252
Teil 4: Optimieren der Anwendung.253
9 Integration mit Spring und Hibernate/JPA.255
9.1 Warum bei Struts 2 mit Spring arbeiten?.256
9.1.1 Wofür ist Abhängigkeitsinjektion gut?.256
9.1.2 Wie Spring Objekte verwaltet und Abhängigkeiten injiziert.259
9.1.3 Mit Interfaces Implementierungen verstecken.260
9.2 Spring in Struts 2 einfügen.263
9.2.1 Spring verwaltet die Erstellung von Actions, Interceptors und Results.264
9.2.2 Autowiring zur Injektion von Abhängigkeiten in Actions,
Interceptors und Results.266
9.3 Warum soll man bei Struts 2 die Java Persistence API nutzen?.270
9.3.1 Das Projekt für JPA mit Hibernate einrichten.270
9.3.2 Programmieren einer von Spring verwalteten JPA.275
9.4 Zusammenfassung.279
10 Das Validierungsframework.281
10.1 Das Validierungsframework.282
10.1.1 Die Architektur des Validierungsframeworks.282
10.1.2 Das Validierungsframework im Workflow von Struts 2.284
10.2 Actions zur Validierung verschalten.287
10.2.1 Deklaration der Validierungsmetadaten mit ActionClass-validations.xml.288
10.2.2 Die integrierten Validatoren.292
10.3 Eigene Validatoren schreiben.294
10.3.1 Mit eigenem Validator die Passwortstärke prüfen.294
10.3.2 Die Arbeit mit dem eigenen Validator.297
10.4 Fortgeschrittene Themen des Validierungsframeworks.298
10.4.1 Validierung auf der Ebene des Domänenobjekts.298
10.4.2 Mit Validierungskontext die Validierungen verfeinern.302
10.4.3 Vererbung der Validierung.305
10.4.4 Vorzeitiges Beenden von Validierungen.305
10.4.5 Validierungen mit Annotationen deklarieren.306
10.5 Zusammenfassung.308
11 Die Internationalisierung.311
11.1 Java-i 18n und das Framework von Struts 2.312
11.1.1 Auslesen von lokalisiertem Text mit ResourceBundle undLocale.313
11.1.2 Wie Struts 2 die Arbeit mit il8n erleichtert.316
11.2 Eine il8n-Demo für Struts 2.317
11.2.1 Eine kurze Demo für Struts 2 und il8n.317
11.2.2 Ein kurzer Blick hinter die Kulissen.319
11.3 il8n bei Struts 2-Die Details.321
11.3.1 Der Default-Lokalisierungsalgorithmus von Struts 2.321
11.3.2 Nachrichtentexte aus den Bundles auslesen.326
11.3.3 Ein Bündle über das il8n-Tag angeben.330
11.3.4 Parametrisierung der lokalisierten Texte.330
11.3.5 Formatierung von Datumsangaben und Zahlen.332
11.4 Überschreiben der Default-Erkennung des Gebietsschemas.333
11.4.1 Interaktives Setzen von Sprach- und Ländereinstellungen.334
11.4.2 Sprach- und Ländereinstellungen programmatisch setzen.336
11.5 Zusammenfassung.337
12 Struts 2 mit Plug-ins erweitern.341
12.1 Plug-ins-Ein Überblick.342
12.1.1 Wie man Plug-ins findet.343
12.2 Bekannte Plug-ins.343
12.2.1 SiteMesh.344
12.2.2 Tiles.345
12.2.3 JFreeChart.347
12.3 Das interne Komponentensystem.349
12.3.1 Beans.349
12.3.2 Konstanten.350
12.3.3 Injektion.350
12.3.4 Interne Erweiterungspunkte von Struts.351
12.4 Ein Breadcrumb-Plug-in schreiben.353
12.5 Zusammenfassung.357
13 Best Practices.359
13.1 Die Umgebung einrichten.360
13.1.1 Die IDE einrichten.360
13.1.2 Ressourcen erneut laden.361
13.2 Unit-Tests für Ihre Actions.361
13.2.1 Der Vorteil von IoC für Tests.362
13.2.2 JUnit und die Tests.363
13.2.3 Tests von validation.xml-Dateien.365
13.3 Die Wiederverwendbarkeit maximieren.366
13.3.1 Komponenten mit dem component-Tag erstellen.367
13.3.2 Arbeit mit den Template-Tags.368
13.3.3 Verbindung der Punkte von der UI zu den Objekten.369
13.4 Fortgeschrittene Verwendung der UI-Tags.370
13.4.1 Überschreiben vorhandener Templates.370
13.4.2 Eigene Templates schreiben.371
13.4.3 Eigene Themes schreiben.371
13.5 Zusammenfassung.372
14 Migration von Struts Classic.373
14.1 Der Wissenstransfer aus Struts Classic.373
14.1.1 Actions.374
14.1.2 Wo sind die ActionForms geblieben?.375
14.1.3 Austausch der Tag-Libraries.377
14.1.4 Verteilen der Nachrichtenressourcen.379
14.2 Schrittweise Konvertierung.381
14.2.1 Rom schrittweise erobern.382
14.2.2 Die Action-Mappings.383
14.2.3 Wo die Action das Formular trifft.385
14.2.4 Die Seite wandeln.386
14.2.5 No speak English.389
14.2.6 Die Datenpolizei.390
14.2.7 Könnten wir nicht einfach so klarkommen?.392
14.3 Zusammenfassung.394
15 Themen für Fortgeschrittene.395
15.1 Fortgeschrittene Verwendung von Actions.395
15.1.1 Alternative Methodenaufrufe.396
15.2 Dynamische Methodenaufrufe.397
15.2.1 Die Methodenauswahl per Wildcard.397
15.2.2 Dynamische Workflows.400
15.3 Mit Tokens doppelte Formularübermittlungen verhindern.401
15.3.1 Das s:token/ -Formular-Tag.401
15.3.2 Ausnahmen zur token-Interceptor-Regel.403
15.4 Seiten mit Fortschrittsanzeige automatisch darstellen.405
15.4.1 User am Rande des Nervenzusammenbruchs.405
15.5 Eine einzige Action für CRUD-Operationen.406
15.5.1 Dieses CRUD.407
15.5.2 Interceptors und Interfaces.408
15.5.3 Die Teile verbinden.413
15.6 Tiles und Struts 2.415
15.6.1 Look Feel der Website.416
15.6.2 Konfiguration des Zusammenspiels.417
15.6.3 Die Arbeit mit der deklarativen Architektur.419
15.6.4 Vorbereiten der Inhalte einer Webseite mit einem Tiles-Controller.421
15.7 Zusammenfassung.423
Register.425 |
adam_txt |
Inhalt
Vorwort.1
Danksagungen.1
Über dieses Buch.1
Teil 1: Struts 2 - Ein brandneues Framework.1
1 Struts 2 - Das moderne Framework für Webanwendungen.3
1.1 Webanwendungen - Ein kurzer Überblick.4
1.1.1 Das Internet zum Erstellen von Anwendungen einsetzen.4
1.1.2 Die technologische Basis.4
1.1.3 Inspektion des Arbeitsbereichs.9
1.2 Frameworks für Webanwendungen.11
1.2.1 Was ist ein Framework?.11
1.2.2 Warum man mit einem Framework arbeiten sollte.12
1.3 Das Framework von Struts 2.13
1.3.1 Ein kurzer historischer Abriss.13
1.3.2 Struts 2 aus 10.000 Metern Höhe: Das MVC-Muster.14
1.3.3 Wie Struts 2 arbeitet.17
1.4 Zusammenfassung.21
2 Struts 2 - Der erste Kontakt.23
2.1 Deklarative Architektur.24
2.1.1 Zwei Arten der Konfiguration.24
2.1.2 Zwei Mechanismen zur Deklaration der Architektur.25
2.1.3 Intelligente Defaults.28
2.2 Hello auf die Schnelle.29
2.2.1 Deployment der Beispielanwendung.29
2.2.2 Die HelloWorld-Anwendung.34
2.3 Hello World mit Annotationen.41
2.4 Zusammenfassung.44
Teil 2: Zentrale Konzepte: Actions, Interceptors und Typkonvertierungen.45
3 Die Arbeit mit Actions.47
3.1 Die Actions in Struts 2.48
3.1.1 Was macht eine Action?.48
3.2 Verpacken der Actions.50
3.2.1 Das Struts 2 Portfolio.51
3.2.2 Die Organisation der Pakete.51
3.2.3 Die Arbeit mit den Komponenten des struts-default-Pakets.54
3.3 Implementierung von Actions.56
3.3.1 Das optionale Action-Interface.57
3.3.2 Die ActionSupport-Klasse.58
3.4 Daten auf Objekte transferieren.66
3.4.1 Objekt-gepufferte JavaBeans-Properties.67
3.4.2 ModelDriven-Actions.69
3.4.3 Domänenobjekte für Datentransfer - Eine Abschlussbemerkung.71
3.5 Dateiupload - Eine Fallstudie.72
3.5.1 Eingebauter Support über das Paket struts-default.73
3.5.2 Was macht der fileUpload-Interceptor?.73
3.5.3 Der Beispielcode von Struts 2 Portfolio.74
3.6 Zusammenfassung.77
4 Den Workflow mit Interceptors ergänzen.79
4.1 Abfangen von Anfragen.80
4.1.1 Das MVC aufräumen.80
4.1.2 Die Vorteile einfahren.82
4.1.3 Erstellen von Interceptors.83
4.2 Interceptors im Einsatz.84
4.2.1 Die Chefin: Actionlnvocation.84
4.2.2 Wie die Interceptors feuern.84
4.3 Die in Struts 2 integrierten Interceptors.87
4.3.1 Utility-Interceptors.88
4.3.2 Interceptors für den Datentransfer.88
4.3.3 Workflow-Interceptor.90
4.3.4 Weitere Interceptors.95
4.3.5 Integrierte Stacks.97
4.4 Deklaration von Interceptors.97
4.4.1 Deklaration einzelner Interceptors und Interceptor-Stacks.98
4.4.2 Interceptors auf Actions mappen.100
4.4.3 Setzen und Überschreiben von Parametern.101
4.5 Erstellen eigener Interceptors.102
4.5.1 Implementierung des Interceptor-Interface.102
4.5.2 Der Authenticationlnterceptor.103
4.6 Zusammenfassung.107
5 Datentransfer-OGNL und Typkonvertierung.109
5.1 Datentransfer und Typkonvertierung: Übliche Aufgaben bei Webanwendungen.110
5.2 OGNL und Struts 2.111
5.2.1 Die Aufgabe von OGNL.111
5.2.2 Wie passt OGNL in das Framework?.113
5.3 Integrierte Typkonverter.116
5.3.1 Konvertierungen out ofthe box.117
5.3.2 Formularfeldnamen mit OGNL-Ausdrücken auf Properties mappen.118
5.4 Eigene Typkonvertierungen.131
5.4.1 Implementierung eines Typkonverters.132
5.4.2 Konvertierung zwischen Strings und Circles.133
5.4.3 Konfiguration des Frameworks zur Arbeit mit dem Konverter.134
5.5 Zusammenfassung.136
Teil 3: Die View erstellen - Tags und Results.139
6 Die View erstellen - Tags.141
6.1 Auf die Plätze.142
6.1.1 Der ActionContext und OGNL.142
6.1.2 Der ValueStack-Ein virtuelles Objekt.146
6.2 Die Tags von Struts im Überblick.148
6.2.1 Die Syntax der Tag-API von Struts 2.148
6.2.2 Attribute für Tags mit OGNL setzen.150
6.3 Daten-Tags.153
6.3.1 Das property-Tag.154
6.3.2 Dasset-Tag.154
6.3.3 Daspush-Tag.156
6.3.4 Dasbean-Tag.157
6.3.5 Das action-Tag.160
6.4 Control-Tags.162
6.4.1 Das iterator-Tag.162
6.4.2 Die Tags if und eise.164
6.5 Verschiedene andere Tags.164
6.5.1 Das include-Tag.165
6.5.2 Das URL-Tag.166
6.5.3 Die Tags il8n und text.167
6.5.4 Dasparam-Tag.169
6.6 Die Verwendung von JSTL und anderen nativen Tags.170
6.7 Kurze Einführung in die Ausdruckssprache OGNL. 170
6.7.1 Was ist OGNL?.170
6.7.2 Häufige Features einer Ausdruckssprache in Struts 2.171
6.7.3 Fortgeschrittene Features der Ausdruckssprache.177
6.8 Zusammenfassung.180
7 Ul-Komponenten-Tags.183
7.1 Warum wir UI-Komponenten-Tags brauchen.184
7.1.1 Mehr als nur Formularelemente.184
7.2 Tags, Templates und Themes.190
7.2.1 Tags.192
7.2.2 Templates.192
7.2.3 Themes.193
7.3 Referenz der Tags der UI-Komponenten.195
7.3.1 Allgemeine Attribute.195
7.3.2 Einfache Komponenten.197
7.3.3 Von Collections gepufferte Komponenten.209
7.3.4 Bonus-Komponenten.218
7.4 Zusammenfassung.220
8 Results unter der Lupe.223
8.1 Leben nach der Action.224
8.1.1 Jenseits der Seite - Wie man mit eigenen Results Ajax-Anwendungen
in Struts 2 erstellt.225
8.1.2 Implementierung eines JSON-Result-Typs.226
8.2 Häufig verwendete Result-Typen.235
8.2.1 Der RequestDispatcher alias Dispatcher.236
8.2.2 Das ServletRedirectResult alias redirect.242
8.2.3 Das ServletActionRedirectResult alias redirectAction.245
8.3 JSP-Alternativen.247
8.3.1 VelocityResult alias velocity.247
8.3.2 FreemarkerResult alias freemarker.249
8.4 Globale Results.251
8.5 Zusammenfassung.252
Teil 4: Optimieren der Anwendung.253
9 Integration mit Spring und Hibernate/JPA.255
9.1 Warum bei Struts 2 mit Spring arbeiten?.256
9.1.1 Wofür ist Abhängigkeitsinjektion gut?.256
9.1.2 Wie Spring Objekte verwaltet und Abhängigkeiten injiziert.259
9.1.3 Mit Interfaces Implementierungen verstecken.260
9.2 Spring in Struts 2 einfügen.263
9.2.1 Spring verwaltet die Erstellung von Actions, Interceptors und Results.264
9.2.2 Autowiring zur Injektion von Abhängigkeiten in Actions,
Interceptors und Results.266
9.3 Warum soll man bei Struts 2 die Java Persistence API nutzen?.270
9.3.1 Das Projekt für JPA mit Hibernate einrichten.270
9.3.2 Programmieren einer von Spring verwalteten JPA.275
9.4 Zusammenfassung.279
10 Das Validierungsframework.281
10.1 Das Validierungsframework.282
10.1.1 Die Architektur des Validierungsframeworks.282
10.1.2 Das Validierungsframework im Workflow von Struts 2.284
10.2 Actions zur Validierung verschalten.287
10.2.1 Deklaration der Validierungsmetadaten mit ActionClass-validations.xml.288
10.2.2 Die integrierten Validatoren.292
10.3 Eigene Validatoren schreiben.294
10.3.1 Mit eigenem Validator die Passwortstärke prüfen.294
10.3.2 Die Arbeit mit dem eigenen Validator.297
10.4 Fortgeschrittene Themen des Validierungsframeworks.298
10.4.1 Validierung auf der Ebene des Domänenobjekts.298
10.4.2 Mit Validierungskontext die Validierungen verfeinern.302
10.4.3 Vererbung der Validierung.305
10.4.4 Vorzeitiges Beenden von Validierungen.305
10.4.5 Validierungen mit Annotationen deklarieren.306
10.5 Zusammenfassung.308
11 Die Internationalisierung.311
11.1 Java-i 18n und das Framework von Struts 2.312
11.1.1 Auslesen von lokalisiertem Text mit ResourceBundle undLocale.313
11.1.2 Wie Struts 2 die Arbeit mit il8n erleichtert.316
11.2 Eine il8n-Demo für Struts 2.317
11.2.1 Eine kurze Demo für Struts 2 und il8n.317
11.2.2 Ein kurzer Blick hinter die Kulissen.319
11.3 il8n bei Struts 2-Die Details.321
11.3.1 Der Default-Lokalisierungsalgorithmus von Struts 2.321
11.3.2 Nachrichtentexte aus den Bundles auslesen.326
11.3.3 Ein Bündle über das il8n-Tag angeben.330
11.3.4 Parametrisierung der lokalisierten Texte.330
11.3.5 Formatierung von Datumsangaben und Zahlen.332
11.4 Überschreiben der Default-Erkennung des Gebietsschemas.333
11.4.1 Interaktives Setzen von Sprach- und Ländereinstellungen.334
11.4.2 Sprach- und Ländereinstellungen programmatisch setzen.336
11.5 Zusammenfassung.337
12 Struts 2 mit Plug-ins erweitern.341
12.1 Plug-ins-Ein Überblick.342
12.1.1 Wie man Plug-ins findet.343
12.2 Bekannte Plug-ins.343
12.2.1 SiteMesh.344
12.2.2 Tiles.345
12.2.3 JFreeChart.347
12.3 Das interne Komponentensystem.349
12.3.1 Beans.349
12.3.2 Konstanten.350
12.3.3 Injektion.350
12.3.4 Interne Erweiterungspunkte von Struts.351
12.4 Ein Breadcrumb-Plug-in schreiben.353
12.5 Zusammenfassung.357
13 Best Practices.359
13.1 Die Umgebung einrichten.360
13.1.1 Die IDE einrichten.360
13.1.2 Ressourcen erneut laden.361
13.2 Unit-Tests für Ihre Actions.361
13.2.1 Der Vorteil von IoC für Tests.362
13.2.2 JUnit und die Tests.363
13.2.3 Tests von validation.xml-Dateien.365
13.3 Die Wiederverwendbarkeit maximieren.366
13.3.1 Komponenten mit dem component-Tag erstellen.367
13.3.2 Arbeit mit den Template-Tags.368
13.3.3 Verbindung der Punkte von der UI zu den Objekten.369
13.4 Fortgeschrittene Verwendung der UI-Tags.370
13.4.1 Überschreiben vorhandener Templates.370
13.4.2 Eigene Templates schreiben.371
13.4.3 Eigene Themes schreiben.371
13.5 Zusammenfassung.372
14 Migration von Struts Classic.373
14.1 Der Wissenstransfer aus Struts Classic.373
14.1.1 Actions.374
14.1.2 Wo sind die ActionForms geblieben?.375
14.1.3 Austausch der Tag-Libraries.377
14.1.4 Verteilen der Nachrichtenressourcen.379
14.2 Schrittweise Konvertierung.381
14.2.1 Rom schrittweise erobern.382
14.2.2 Die Action-Mappings.383
14.2.3 Wo die Action das Formular trifft.385
14.2.4 Die Seite wandeln.386
14.2.5 No speak English.389
14.2.6 Die Datenpolizei.390
14.2.7 Könnten wir nicht einfach so klarkommen?.392
14.3 Zusammenfassung.394
15 Themen für Fortgeschrittene.395
15.1 Fortgeschrittene Verwendung von Actions.395
15.1.1 Alternative Methodenaufrufe.396
15.2 Dynamische Methodenaufrufe.397
15.2.1 Die Methodenauswahl per Wildcard.397
15.2.2 Dynamische Workflows.400
15.3 Mit Tokens doppelte Formularübermittlungen verhindern.401
15.3.1 Das s:token/ -Formular-Tag.401
15.3.2 Ausnahmen zur token-Interceptor-Regel.403
15.4 Seiten mit Fortschrittsanzeige automatisch darstellen.405
15.4.1 User am Rande des Nervenzusammenbruchs.405
15.5 Eine einzige Action für CRUD-Operationen.406
15.5.1 Dieses CRUD.407
15.5.2 Interceptors und Interfaces.408
15.5.3 Die Teile verbinden.413
15.6 Tiles und Struts 2.415
15.6.1 Look Feel der Website.416
15.6.2 Konfiguration des Zusammenspiels.417
15.6.3 Die Arbeit mit der deklarativen Architektur.419
15.6.4 Vorbereiten der Inhalte einer Webseite mit einem Tiles-Controller.421
15.7 Zusammenfassung.423
Register.425 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Brown, Donald Davis, Chad Michael Stanlick, Scott |
author_GND | (DE-588)136449026 |
author_facet | Brown, Donald Davis, Chad Michael Stanlick, Scott |
author_role | aut aut aut |
author_sort | Brown, Donald |
author_variant | d b db c m d cm cmd s s ss |
building | Verbundindex |
bvnumber | BV035106714 |
classification_rvk | ST 252 ST 253 |
classification_tum | DAT 68f DAT 677f |
ctrlnum | (OCoLC)315975459 (DE-599)DNB98852855X |
dewey-full | 006.78 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 006 - Special computer methods |
dewey-raw | 006.78 |
dewey-search | 006.78 |
dewey-sort | 16.78 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV035106714</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20081202</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">081017s2008 gw d||| |||| 00||| ger d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">98852855X</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783446415751</subfield><subfield code="9">978-3-446-41575-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)315975459</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB98852855X</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BY</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-19</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-210</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-355</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">006.78</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 252</subfield><subfield code="0">(DE-625)143627:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 253</subfield><subfield code="0">(DE-625)143628:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 68f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 677f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Brown, Donald</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)136449026</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Struts 2 in action</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Struts 2 im Einsatz</subfield><subfield code="c">Donald Brown ; Chad Michael Davis ; Scott Stanlick</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">München</subfield><subfield code="b">Hanser</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIII, 454 S.</subfield><subfield code="b">graph. Darst.</subfield><subfield code="c">25 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Struts</subfield><subfield code="0">(DE-588)4731453-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Struts 2</subfield><subfield code="0">(DE-588)7660856-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Struts 2</subfield><subfield code="0">(DE-588)7660856-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Struts</subfield><subfield code="0">(DE-588)4731453-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Davis, Chad Michael</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Stanlick, Scott</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=3098989&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016774611&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016774611</subfield></datafield></record></collection> |
id | DE-604.BV035106714 |
illustrated | Illustrated |
index_date | 2024-07-02T22:16:05Z |
indexdate | 2024-07-20T09:52:46Z |
institution | BVB |
isbn | 9783446415751 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016774611 |
oclc_num | 315975459 |
open_access_boolean | |
owner | DE-19 DE-BY-UBM DE-12 DE-91G DE-BY-TUM DE-210 DE-473 DE-BY-UBG DE-83 DE-29T DE-355 DE-BY-UBR |
owner_facet | DE-19 DE-BY-UBM DE-12 DE-91G DE-BY-TUM DE-210 DE-473 DE-BY-UBG DE-83 DE-29T DE-355 DE-BY-UBR |
physical | XXIII, 454 S. graph. Darst. 25 cm |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Hanser |
record_format | marc |
spelling | Brown, Donald Verfasser (DE-588)136449026 aut Struts 2 in action Struts 2 im Einsatz Donald Brown ; Chad Michael Davis ; Scott Stanlick München Hanser 2008 XXIII, 454 S. graph. Darst. 25 cm txt rdacontent n rdamedia nc rdacarrier Struts (DE-588)4731453-9 gnd rswk-swf Struts 2 (DE-588)7660856-6 gnd rswk-swf Struts 2 (DE-588)7660856-6 s DE-604 Struts (DE-588)4731453-9 s 1\p DE-604 Davis, Chad Michael Verfasser aut Stanlick, Scott Verfasser aut text/html http://deposit.dnb.de/cgi-bin/dokserv?id=3098989&prov=M&dok_var=1&dok_ext=htm Inhaltstext HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016774611&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Brown, Donald Davis, Chad Michael Stanlick, Scott Struts 2 im Einsatz Struts (DE-588)4731453-9 gnd Struts 2 (DE-588)7660856-6 gnd |
subject_GND | (DE-588)4731453-9 (DE-588)7660856-6 |
title | Struts 2 im Einsatz |
title_alt | Struts 2 in action |
title_auth | Struts 2 im Einsatz |
title_exact_search | Struts 2 im Einsatz |
title_exact_search_txtP | Struts 2 im Einsatz |
title_full | Struts 2 im Einsatz Donald Brown ; Chad Michael Davis ; Scott Stanlick |
title_fullStr | Struts 2 im Einsatz Donald Brown ; Chad Michael Davis ; Scott Stanlick |
title_full_unstemmed | Struts 2 im Einsatz Donald Brown ; Chad Michael Davis ; Scott Stanlick |
title_short | Struts 2 im Einsatz |
title_sort | struts 2 im einsatz |
topic | Struts (DE-588)4731453-9 gnd Struts 2 (DE-588)7660856-6 gnd |
topic_facet | Struts Struts 2 |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=3098989&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016774611&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT browndonald struts2inaction AT davischadmichael struts2inaction AT stanlickscott struts2inaction AT browndonald struts2imeinsatz AT davischadmichael struts2imeinsatz AT stanlickscott struts2imeinsatz |