Praxisbuch Wicket - Professionelle Web-2.0-Anwendungen entwickeln

Michael Mosmann

Praxisbuch Wicket

Professionelle Web-2.0-Anwendungen entwickeln

2009

314 Seiten

Format: PDF, Online Lesen

E-Book: €  31,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446421417

 

Inhalt

8

Vorwort

14

1 Einleitung

16

1.1 Warum Wicket?

18

1.1.1 Einfach, Konsistent, Offensichtlich

19

1.1.2 Wiederverwendbarkeit

19

1.1.3 Sauber getrennt

20

1.1.4 Sicher

20

1.1.5 Effizient und skalierbar

21

1.1.6 Komplett

21

1.1.7 Eine gute Wahl

21

1.2 Vorbereitung und Installation

22

1.2.1 Java, Maven und Eclipse

22

1.2.2 Versionskontrolle mit Subversion

22

1.3 Grundlagen einer Webanwendung

23

1.3.1 Anwendungsschichten

23

1.3.2 Verzeichnis und Paketstruktur

26

1.3.3 Unit-Tests

27

2 Aufsetzen der Teilprojekte

30

2.1 Nomenklatur der Teilprojekte

30

2.2 Aufsetzen der Teilprojekte

31

2.2.1 Projektbasis ParentPom

31

2.2.2 Teilprojekt Base

35

2.2.3 Teilprojekte Datenbankkonfiguration

35

2.2.4 Teilprojekt Persistenz

37

2.2.5 Teilprojekt Applikationsschicht

39

2.2.6 Teilprojekt Webapp

39

2.2.7 Teilprojekt ParentPom – Abschluss

41

2.3 Erstellen von Eclipse-Projektdateien

42

3 Mit Leben füllen

44

3.1 Konfiguration mit Spring

44

3.2 Datenbankkonfiguration

45

3.2.1 Teilprojekt dbconfig

45

3.2.2 Teilprojekt dbconfig-test

46

3.2.3 Teilprojekt dbconfig-schema-update

46

3.2.4 Schemagenerierung mit Hibernate

47

3.3 Persistenz

48

3.3.1 Datenbankzugriff – Allgemeine Schnittstellendefinition

48

3.3.2 Datenbankzugriff – Hilfsklassen

49

3.3.3 Datenbankzugriff – User

50

3.3.4 Datenbankzugriff – Konfiguration

52

3.3.5 Persistenz-Tests

53

3.3.6 Schema-Update

55

3.4 Anwendungsschicht

56

3.5 Präsentationsschicht

56

3.5.1 Hilfsklasse für Maven-Projekte

56

3.5.2 Wicket Web Application

57

3.5.3 Servlet-Konfiguration

59

3.5.4 Spring-Konfiguration

61

3.5.5 Start der Anwendung

61

4 Die Wicket-Architektur

64

4.1 Wicket und das HTTP-Protokoll

64

4.2 Struktur

64

4.2.1 WebApplication

65

4.2.2 Session

65

4.2.3 PageMap

65

4.2.4 Page

65

4.2.5 PageStore

66

4.2.6 Component

66

4.3 Request-Behandlung

66

4.3.1 Komponentenphasen

67

4.3.2 Nebenläufigkeit – Threads

67

4.4 Komponenten, Modelle, Markup

68

4.4.1 Komponenten

68

4.4.2 Modelle

68

4.4.3 Markup

68

5 Modelle

70

5.1 Konverter

70

5.2 Einfache Modelle

72

5.2.1 Modelle verändern

73

5.3 Modell-Hilfsklassen

75

5.4 Modelle und Serialisierung

76

5.4.1 DetachableModel – Dynamische Modelldaten

76

5.4.2 Kaskadierung von Modellen

77

5.4.3 Automatische Kaskadierung von Modellen

80

5.4.4 Datenbankzugriffsmodelle

81

5.5 Komplexe Modellklassen

84

5.5.1 Zugriff auf Bean-Properties

84

5.5.2 Die Klasse PropertyModel

87

5.5.3 CompoundPropertyModel

89

5.6 Ausgelagerte Informationen

91

5.6.1 Einfacher Zugriff auf Ressourcen

91

5.6.2 ResourceModel

91

5.6.3 StringResourceModel

93

6 Komponenten

96

6.1 Basisklasse Component

96

6.1.1 Komponentenbaum

96

6.1.2 Darstellungsphasen

98

6.1.3 Page, Session und Application

99

6.1.4 Komponentenpfad

99

6.1.5 Modelle

99

6.1.6 Feedback

100

6.2 Grundlagen der Vererbung

100

6.2.1 Eine Seite mit eigenen Komponenten

100

6.2.2 Vererbung für Fortgeschrittene

106

6.3 Style, Locale und Variation

109

6.3.1 Markup-Variationen

109

6.4 Sichtbarkeit

114

6.4.1 wicket:enclosure

115

6.4.2 Empfehlung zur Anwendung

116

6.5 Ajax

117

6.5.1 Ajax-Events

118

6.5.2 Einfache Event-Behandlung

119

6.5.3 Automatische Event-Behandlung

120

7 Basiskomponenten

124

7.1 Gruppierende Komponenten

124

7.1.1 Seiten

124

7.1.2 Panel

132

7.1.3 Fragment

134

7.1.4 Border

135

7.1.5 ComponentBorder

140

7.1.6 WebMarkupContainer

141

7.2 Inhaltselemente

142

7.2.1 Label und MultiLineLabel

142

7.2.2 Lokaler Konverter

144

7.2.3 XML

145

7.2.4 Das wicket:message-Tag

146

7.2.5 Image

147

7.3 Links

152

7.3.1 Von A nach B

152

7.3.2 Ajax und Links

153

7.3.3 Link-Tricks

155

7.3.4 Externe Links

156

7.3.5 Popups

156

7.3.6 ResourceLink

158

7.3.7 Formularlinks

159

7.4 Behavior

159

7.4.1 Darf es etwas JavaScript sein?

159

7.4.2 Attribute anpassen

160

7.4.3 Attribute erweitern

162

7.4.4 Ajax und Formulare

163

8 Listen und Tabellen

164

8.1 Darstellung von Listen

164

8.1.1 RepeatingView

164

8.1.2 RefreshingView

165

8.1.3 ListView

167

8.1.4 PropertyListView

168

8.1.5 ColumnListView

169

8.2 DataProvider

171

8.2.1 DataView

171

8.2.2 GridView

173

8.2.3 DataGridView

174

8.2.4 DataTable

176

8.2.5 DefaultDataTable

177

9 Formulare

184

9.1 Voraussetzungen

184

9.2 Feedback

185

9.3 Basisklasse für alle Beispiele

186

9.4 Formulare absenden

187

9.4.1 Absenden mit Submit-Button

187

9.4.2 Button-Komponente

188

9.4.3 Submit per Ajax

189

9.4.4 POST und GET

190

9.5 Textfelder

191

9.5.1 Typangabe

193

9.5.2 Automatische Typermittlung

194

9.6 Label

196

9.7 CheckBox

197

9.8 RadioButton

200

9.9 Auswahlfelder

201

9.9.1 Select

201

9.9.2 DropDownChoice

203

9.9.3 ListMultipleChoice

205

9.10 Dateien hochladen

207

9.10.1 FileUpload

207

9.10.2 MultiFileUpload

209

9.11 Gültigkeitsprüfung

210

9.11.1 StringValidator

211

9.11.2 Minimum und Maximum

212

9.11.3 E-Mail

212

9.11.4 URL

214

9.11.5 Eigene Validatoren

214

9.12 FormValidator

216

9.12.1 Passwortprüfung

216

9.12.2 Eigene Prüfung

218

9.13 Ajax

220

9.13.1 AjaxFormSubmitBehavior

220

9.13.2 AjaxFormValidatingBehavior

222

9.13.3 AjaxComponentUpdatingBehavior

222

9.13.4 OnChangeBehavior

224

9.13.5 AutoCompleteTextField

225

9.14 AjaxEditableLabel

227

9.15 Erweitertes Feedback

229

9.15.1 Feedback zum Formular

229

9.15.2 Feedback für die Komponente

230

9.15.3 Feedback als Rahmen

231

9.15.4 Feedback als Indikator

232

9.15.5 Feedback per CSS

233

9.16 Generierte Formulare

235

9.17 Verschachtelte Formulare

237

10 Sessions und Security

240

10.1 Einfache Variante

240

10.1.1 Eine eigene Session-Klasse

240

10.1.2 Geschützte Seiten

241

10.1.3 Strategie

241

10.1.4 WebApplication

242

10.1.5 Seiten

243

10.2 Marker an Komponenten

246

10.3 Elemente ausblenden

248

11 Wicket in der Praxis

250

11.1 Die Integration von Spring

250

11.2 Navigation

252

11.3 CSS einbinden

259

11.4 Eigene Basiskomponenten

265

11.5 Komponententausch

268

11.5.1 AjaxFallbackConfirmLink

269

11.5.2 Wizard

271

11.6 Suchmaschinenoptimierung

273

11.6.1 Pfad für BookmarkablePages

273

11.6.2 SessionTimeoutPage

277

11.6.3 SEO-Links

279

11.6.4 Servlet-Filter

283

11.6.5 Tracking mit Google Analytics

286

11.7 Ressourcen

289

11.7.1 Dynamisch erzeugte Grafiken

289

11.7.2 Automatisch generierte Thumbnails

291

11.7.3 Download durch Formular

292

11.7.4 Shared Resources

293

11.7.5 RSS-Feed

295

11.8 Links auf Seiten und Ressourcen

297

11.9 Optimierungen

299

11.9.1 Applikation

299

11.9.2 Konverter

299

11.9.3 Debug

299

11.9.4 Ressource

300

12 Fehlersuche

302

12.1 Häufige Fehlerquellen

302

12.1.1 Komponenten fehlen

302

12.1.2 Komponente ist bereits vorhanden

302

12.1.3 Ajax funktioniert nicht

303

12.2 Unit-Tests

303

13 Anfang oder Ende?

308

Register

310

 

© 2009-2024 ciando GmbH