Tapestry 5: Die Entwicklung von Webanwendungen mit Leichtigkeit 3827328446, 9783827328441 [PDF]


144 36 4MB

German Pages 433

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Tapestry 5 - Die Entwicklung von Webanwendungen mit Leichtigkeit......Page 1
Inhaltsübersicht......Page 6
3 Tapestry als ereignisgetriebenes MVC-Framework......Page 8
6 Lokalisierung......Page 9
9 Arbeiten mit JavaBeans......Page 10
11 Entwicklung wiederverwendbarer Komponenten......Page 11
14 Integration von Hibernate und Spring......Page 12
17 Tapestry IoC und Dependency Injection......Page 13
18 AOP mit Tapestry......Page 14
A Anhang......Page 15
Stichwortverzeichnis......Page 17
Einleitung......Page 18
Vorwort von Howard M. Lewis Ship......Page 22
Danksagungen......Page 24
Teil I Tapestry für Einsteiger......Page 26
1.1 Wie alles begann......Page 28
1.2 Model View Controller......Page 31
1.3 Tapestry und das Model View Controller Pattern......Page 32
1.4 Zusammenfassung......Page 33
2.1 Starten von Tapestry-Anwendungen mit Eclipse Web Tools Platform......Page 36
2.2 Starten von Tapestry-Anwendungen mit Run-Jetty-Run......Page 41
2.3.1 Tapestry-Seiten......Page 43
2.3.2 Tapestry Markup Language......Page 45
2.3.3 Tapestry-Komponenten......Page 51
2.3.4 Tapestry IoC......Page 57
2.4 Nonstop-Entwicklung mit Tapestry......Page 58
2.5 Fehlerberichte......Page 59
2.6 Zusammenfassung......Page 60
3.1 Behandeln der Benutzeraktionen......Page 62
3.2 Namenskonvention vs. Annotationen......Page 64
3.3 Kontext eines Ereignisses......Page 65
3.4 Erzeugen einer Antwort mit Handler-Methoden......Page 66
3.5 Auslösen von Ereignissen mit der Komponente EventLink......Page 68
3.6 Programmatisches Auslösen eigener Ereignisse......Page 69
3.8 Abfangen von Exceptions aus Handler-Methoden......Page 71
3.9 Zusammenfassung......Page 72
4.1 Erstellen von Verweisen zwischen Seiten......Page 74
4.2 Übermitteln von Informationen an eine Zielseite......Page 75
4.3 Übermitteln von Informationen an eine Tapestry-Seite......Page 77
4.3.1 Generieren von Handler-Methoden für den Aktivierungskontext......Page 82
4.4 Navigation durch Aktionen......Page 83
4.5 Zusammenfassung......Page 87
5.1 Lebenszyklus eines Servlets......Page 88
5.3 Lebenszyklus einer Tapestry-Seite......Page 89
5.3.1 Teilnehmen am Lebenszyklus einer Tapestry-Seite......Page 90
5.3.2 Wann werden pageLoaded(), pageAttached() und pageDetached() aufgerufen?......Page 93
5.4 Verwalten des Seitenzustandes......Page 95
5.4.1 Strategien zum Zwischenspeichern der Eigenschaften......Page 96
5.4.2 Verwerfen des Zustands einer Seite......Page 98
5.5 Verwaltung des Anwendungszustandes......Page 99
5.5.1 Erzeugen eines Session State Objects......Page 100
5.5.2 Überprüfung der Existenz eines Session State Objects......Page 101
5.5.3 Arbeiten mit dem Dienst ApplicationStateManager......Page 102
5.5.4 Eingreifen in den Prozess der Instanziierung eines Session State Objects......Page 103
5.6 Zusammenfassung......Page 104
6.1 Internationalisierung und Lokalisierung in Java......Page 106
6.4 Lokalisierte Templates......Page 107
6.5 Zugreifen auf den Nachrichtenkatalog......Page 108
6.7 Lokalisierung statischer Ressourcen......Page 110
6.8 Umschalten zwischen unterstützten Sprachen einer Anwendung......Page 113
6.9 Zusammenfassung......Page 116
7 Formulare......Page 118
7.1 Erzeugen eines einfachen Login-Formulars......Page 119
7.2 Behandlung der Ereignisse der Komponente Form......Page 122
7.3 Mehrere Formulare auf einer Seite......Page 126
7.4.1 Texteingabe in Text- und Passwortfelder......Page 127
7.4.2 Checkboxen......Page 130
7.4.3 Radiobuttons......Page 132
7.4.4 Auswahllisten......Page 135
7.4.5 Palette......Page 140
7.4.6 Eingabe eines Datums......Page 142
7.4.7 Hochladen von Dateien......Page 144
7.4.8 Abschicken von Formularen......Page 147
7.5 Labels für Formularfelder......Page 149
7.6 Eingabevalidierung......Page 151
7.6.1 Überschreiben von Validierungsmeldungen......Page 155
7.6.2 Eigene Validatoren......Page 156
7.7 Null-Werte in Formularfeldern......Page 161
7.8 Umwandlung von Eingaben zwischen Client und Server......Page 163
7.9 Zusammenfassung......Page 168
8.1 Variable Anzahl von Formularfeldern......Page 170
8.1.1 Beispielszenario......Page 171
8.1.2 Implementierung des Beispielszenarios......Page 172
8.2.2 Implementierung des Beispielszenarios......Page 177
8.3 Teilformulare......Page 180
8.4 Zusammenfassung......Page 183
9.1.1 Don’t Repeat Yourself......Page 184
9.1.2 Generieren von Formularen mit BeanEditForm......Page 186
9.1.3 Verstecken bestimmter Eigenschaften von JavaBeans......Page 188
9.1.4 Angepasste Formularfelder......Page 190
9.1.5 Reihenfolge der Formularfelder......Page 192
9.1.7 Programmatisches Ändern von Metadaten einer JavaBean......Page 193
9.1.8 Eingabenvalidierung......Page 195
9.2 Darstellen von JavaBeans......Page 197
9.3 Darstellen mehrerer JavaBeans......Page 198
9.3.1 Paging......Page 201
9.3.2 Zugriff auf die Werte der aktuellen Iteration......Page 202
9.3.3 Überschreiben der Darstellung von Spalten......Page 203
9.4.1 Neue Datentypen zum Editieren von Eigenschaften......Page 204
9.4.2 Neue Datentypen zum Darstellen von Eigenschaften......Page 206
9.5 Zusammenfassung......Page 208
10.1 Senden eines einfachen Textes als Bytestrom......Page 210
10.2 Anbieten einer Download-Funktionalität......Page 211
10.3 Anzeigen eines Diagramms......Page 213
10.4 Zusammenfassung......Page 216
Teil II Tapestry für Fortgeschrittene......Page 218
11.2 Parameter von Komponenten......Page 220
11.3 Bidirektionale Parameter......Page 222
11.4 Standard-Bindings der Parameter......Page 223
11.4.1 Standard-Binding-Methoden......Page 225
11.4.2 Generierung von Standard-Binding-Methoden......Page 226
11.5 Vererbung von Bindings......Page 227
11.6 Eigene Binding-Präfixe......Page 229
11.7 Markup-Erzeugung einer Komponente......Page 233
11.8 Informelle Parameter......Page 237
11.9 Vererben von Templates......Page 238
11.10 Umgebungsdienste......Page 240
11.11 Komponentenbibliotheken......Page 242
11.12 Zusammenfassung......Page 244
12.1 Was sind Mixins?......Page 246
12.2 Instanz-Mixins......Page 250
12.3 Implementierungs-Mixins......Page 252
12.4 Parameter von Mixins......Page 253
12.5 Mixins in Tapestry......Page 254
12.6 Zusammenfassung......Page 255
13.1 Einfache Ajax-Funktionalität......Page 256
13.2 Aktualisieren von Zones mit zusätzlichem Inhalt......Page 259
13.4 Aktualisierung mehrerer Zones......Page 262
13.5 Ajax-Unterstützung in Tapestry-Komponenten......Page 265
13.6 Ajax und JavaScript......Page 266
13.7 Optimierung der Ladezeit durch Ajax......Page 267
13.8 Erzeugen eines Autovervollständigers......Page 270
13.8.1 Erweitern von Autocomplete......Page 272
13.9 Eigene Ajax-Komponenten......Page 276
13.10 Zusammenfassung......Page 279
14.1.1 Konfiguration von Hibernate in Tapestry-Anwendungen......Page 282
14.1.2 Zugriff auf die Hibernate-Session......Page 283
14.1.3 Commit von Transaktionen......Page 284
14.1.5 Zwischenspeichern von Entitäten mit @Persist......Page 285
14.1.6 Darstellen der Hibernate-Entitäten mit Komponente Grid......Page 286
14.1.7 Zugriff auf Hibernate-Metriken......Page 287
14.1.8 Suche nach Hibernate-Entitäten......Page 288
14.1.9 Teilnahme an der Hibernate-Konfiguration......Page 289
14.2 Integration von Spring......Page 290
14.2.1 Konfiguration von Spring......Page 291
14.2.2 Benutzen von Spring-Beans in Tapestry-Anwendungen......Page 293
14.2.3 Benutzung von Tapestry-Diensten in Spring-Beans......Page 295
14.3 Zusammenfassung......Page 297
15.1 Unit-Tests für Dienste......Page 300
15.2.1 Einfacher Unit-Test für eine Seite......Page 303
15.2.2 Unit-Tests zur Überprüfung von Markup......Page 305
15.2.3 Testen von Links......Page 306
15.2.4 Testen von Formularen......Page 307
15.2.5 Überschreiben von Diensten zur Verbesserung der Testbarkeit......Page 310
15.2.6 Testen von Komponenten......Page 312
15.3.1 Ein einfacher Integrationstest......Page 313
15.3.2 Klicken auf Links in Integrationstests......Page 314
15.3.3 Testen von Formularen in Integrationstests......Page 315
15.3.4 Testen von Ajax-Funktionalität in Integrationstests......Page 317
15.4 Zusammenfassung......Page 319
16.1 Schützen der Seiten durch HTTPS......Page 320
16.1.1 Basis-URLs......Page 321
16.2 Authentifizierung......Page 323
16.3 Zusammenfassung......Page 325
Teil III Tapestry für Profis......Page 326
17.2 Inversion of Control......Page 328
17.3.1 Setter-Injektion......Page 329
17.3.3 Feld-Injektion......Page 330
17.4 Warum braucht Tapestry IoC?......Page 331
17.5 Überblick über Tapestry IoC......Page 332
17.5.2 Bind-Methoden......Page 333
17.5.4 Abhängigkeiten von Diensten......Page 335
17.6 Lebenszyklus eines Dienstes......Page 337
17.7 Eifriges Laden von Diensten......Page 338
17.8 Scope eines Dienstes......Page 339
17.9.1 Eindeutigkeit durch explizite IDs......Page 340
17.9.2 Eindeutigkeit durch Marker-Annotationen......Page 342
17.10 Konfiguration von Diensten......Page 344
17.10.1 Erweiterungspunkte in Tapestry......Page 345
17.10.2 Ungeordnete Konfigurationen......Page 346
17.10.3 Geordnete Konfigurationen......Page 348
17.10.4 Schlüssel-Wert-Paare als Konfiguration......Page 350
17.11.1 Symbole......Page 351
17.11.2 Bereitstellen von Symbolen......Page 353
17.13.1 Implementieren von Chains......Page 358
17.13.2 Implementieren von Pipelines......Page 360
17.14 Zusammenfassung......Page 363
18.1 Grundbegriffe von AOP......Page 366
18.2 Tapestry und AOP......Page 367
18.3 Autorisierung der Methodenaufrufe von Diensten......Page 369
18.4 Überschreiben von Methodenparametern der Dienste......Page 370
18.5 Überschreiben der Rückgabewerte von Dienstmethoden......Page 371
18.6 Dekorieren von Komponentenmethoden......Page 372
18.7 Zusammenfassung......Page 373
19.1 Verstehen der Typumwandlung......Page 376
19.2 Erweitern des Umwandlungsgraphen......Page 377
19.3 Durchführen der Typumwandlung......Page 378
19.4 Zusammenfassung......Page 380
20.1 Die HttpServletRequestHandler-Pipeline......Page 382
20.1.1 Bereitstellen eines eigenen HttpServletRequestFilters......Page 384
20.2.1 Bereitstellen eines eigenen RequestHandlers......Page 385
20.3.1 Behandlung von Anfragen an den Kontextpfad......Page 386
20.3.3 Auslösen von Komponentenereignissen......Page 387
20.4 Zusammenfassung......Page 388
21.1 Das zu implementierende Szenario......Page 390
21.2 Bytecodemanipulation von Seitenklassen......Page 391
21.3 Zusammenfassung......Page 396
A.1.2 AddRowLink......Page 398
A.1.3 AjaxFormLoop......Page 399
A.1.5 BeanDisplay......Page 400
A.1.6 BeanEditForm......Page 401
A.1.7 BeanEditor......Page 402
A.1.8 Checkbox......Page 403
A.1.9 DateField......Page 404
A.1.12 EventLink......Page 405
A.1.14 Form......Page 406
A.1.15 FormFragment......Page 407
A.1.16 FormInjector......Page 408
A.1.17 Grid......Page 409
A.1.19 If......Page 411
A.1.21 LinkSubmit......Page 412
A.1.22 Loop......Page 413
A.1.24 OutputRaw......Page 414
A.1.26 Palette......Page 415
A.1.27 PasswordField......Page 416
A.1.29 Radio......Page 417
A.1.32 RenderObject......Page 418
A.1.33 Select......Page 419
A.1.36 TextArea......Page 420
A.1.37 TextField......Page 421
A.1.40 Upload......Page 422
A.2.1 Autocomplete......Page 423
A.2.5 RenderInformals......Page 424
A.3.4 Statistics......Page 425
A......Page 426
D......Page 427
I......Page 428
P......Page 429
T......Page 430
Z......Page 431

Tapestry 5: Die Entwicklung von Webanwendungen mit Leichtigkeit
 3827328446, 9783827328441 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden