Wicket
Komponentenbasiert und objektorientiert - das alternative Java-Webframework
Jochen Mader(Author)
Entwickler Press
Published on 30. March 2012
218 pages
978-3-86802-268-1 (ISBN)
System requirements
for PDF without DRM
E-Book Single Licence
You are acquiring a single user licence for this eBook, which you might not transfer. [L]
Available for download
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Apache Wicket ist ein komponentbasiertes Webframework, das sich in den letzten Jahren zu einem der beliebtesten Vertreter seiner Gattung gemausert hat. Man könnte diese Beliebtheit mit der einfachen Integration von Ajax oder der rigorosen Trennung von Markup und Logik erklären. Aber was Wicket wirklich über die Masse konkurrierender Frameworks erhebt, sind der Verzicht auf eine eigene Markup-Sprache und das objektorientierte Programmiermodell. Dadurch rücken Java und seine Sprachmittel stark in den Vordergrund. Das ermöglicht es erfahrenen Entwicklern, sehr schnell in die Kernkonzepte von Wicket einzusteigen und auch komplexeste Anwendungen umzusetzen.
Ziel dieses Buchs ist es, die grundlegenden Konzepte von Wicket zu vermitteln und im weiteren Verlauf auf fortgeschrittene Aspekte einzugehen. Hierzu wird eine Beispielanwendung entwickelt und Schritt für Schritt erweitert. Anhand detaillierte Codebeispiele werden Sachverhalte wie der Wicket Request Cycle, Models, Validierung und JUnit Testing erklärt. Des Weiteren werden Themen wie Deplyoment-Szenarien (JEE6, Beanstalk,.), jQuery-Integration und Performance-Tuning in separaten Kapiteln behandelt. Durch Studium dieses Buchs soll ein Entwickler befähigt werden, skalierbare, wartbare Webanwendungen in Wicket zu bauen, und er soll lernen, eigene, wiederverwendbare Komponenten zu entwickeln und fremde Komponenten zu erweitern.
Ziel dieses Buchs ist es, die grundlegenden Konzepte von Wicket zu vermitteln und im weiteren Verlauf auf fortgeschrittene Aspekte einzugehen. Hierzu wird eine Beispielanwendung entwickelt und Schritt für Schritt erweitert. Anhand detaillierte Codebeispiele werden Sachverhalte wie der Wicket Request Cycle, Models, Validierung und JUnit Testing erklärt. Des Weiteren werden Themen wie Deplyoment-Szenarien (JEE6, Beanstalk,.), jQuery-Integration und Performance-Tuning in separaten Kapiteln behandelt. Durch Studium dieses Buchs soll ein Entwickler befähigt werden, skalierbare, wartbare Webanwendungen in Wicket zu bauen, und er soll lernen, eigene, wiederverwendbare Komponenten zu entwickeln und fremde Komponenten zu erweitern.
More details
Language
German
Place of publication
Frankfurt am Main
Germany
File size
2,15 MB
ISBN-13
978-3-86802-268-1 (9783868022681)
Schweitzer Classification
Other editions
Additional editions

Book
03/2012
Entwickler Press
€29.90
No shipping information available
Person
Jochen Mader hat über zehn Jahre Erfahrung im Bereich Architektur und Entwicklung. Derzeit ist er bei der Senacor Technologies AG für verschiedene Wicket-Projekte als Technical Lead verantwortlich.
Content
- Intro
- Impressum
- Widmung
- Vorwort
- 1 Apache Wicket
- 1.1 Wicket-Steckbrief
- 1.1.1 Community
- 1.2 Aufbau des Buchs
- 1.3 Version
- 2 Technologien des Webs
- 2.1 HTTP
- 2.2 AJAX
- 2.2.1 Beispiel: CRM++
- 2.2.2 Das Missverständnis
- 3 Java im Web
- 3.1 Servlets und JSPs
- 3.1.1 Model 1
- 3.1.2 Model 2
- 3.2 Wickets Vorfahren
- 3.2.1 Struts
- 3.2.2 Apache Velocity
- 3.2.3 Spring MVC
- 3.2.4 Ruby on Rails
- 3.2.5 Java Server Faces
- 3.3 Fazit
- 4 Schnelleinstieg
- 4.1 Ein Beispiel
- 4.2 Das Maven-Projekt
- 4.2.1 Das Jetty-Plug-in
- 4.2.2 Webressourcen
- 4.3 Build-Systeme
- 4.4 IDE-Integration
- 4.5 Fazit
- Einleitung Teil 2: Aufbau von Wicket
- 5 Application
- 5.1 Startseite
- 5.2 Settings und Application.init()
- 5.3 Mountpoints
- 5.4 Development- vs. Deployment-Mode
- 5.4.1 Modus wechseln
- 5.4.2 Unterschiede
- 5.5 Beispiel
- 5.6 Fazit
- 6 IRequestCycle
- 6.1 Ablauf
- 6.2 Ablaufsteuerung via setResponsePage
- 6.3 Ablaufsteuerung via Exceptions
- 6.3.1 AbortWithHttpErrorCodeException
- 6.3.2 RedirectToUrlException
- 6.3.3 RestartResponseAtInterceptPageException
- 6.3.4 RestartResponseException
- 6.4 IRequestMapper und IRequestHandler
- 6.5 Exceptions
- 6.6 IRequestCycleListener
- 6.6.1 Fehlerbehandlung
- 6.7 Fazit
- 7 Session
- 7.1 Sessions in Wicket
- 7.2 Beispiel
- 8 SessionStore
- 8.1 Aufbau
- 8.2 Second-Level Cache
- 8.3 IDataStore-Implementierungen
- 8.3.1 AsynchronousDataStore
- 8.3.2 DiskDataStore
- 8.3.3 DebugDiskDataStore
- 8.3.4 HttpSessionDataStore
- 8.4 Serialisierung
- 8.5 Versionierung von Models und Forms
- 8.6 Beispiel
- 8.7 Fazit
- 9 Page und Component
- 9.1 Component und ihre Kinder
- 9.2 Der Komponentenbaum
- 9.2.1 Der Komponentenbaum im Markup
- 9.2.2 IVisitor
- 9.3 Page und WebPage
- 9.4 Vererbung
- 9.5 Model View Controller
- 9.6 Stateful vs. Stateless
- 9.7 Sichtbarkeit
- 9.8 Aktivierung
- 9.9 Komponenten und Internationalisierung
- 9.9.1 Vererbung und Fallback auf die Application
- 9.9.2 Verwendung
- 9.9.3 Caching
- 9.10 Styles und Variationen
- 9.11 Versteckte Komponenten
- 9.12 Fazit
- 10 IModel
- 10.1 Das IModel-Interface
- 10.2 Ein erstes Beispiel
- 10.3 Umgangsregeln
- 10.4 IModel-Arten
- 10.4.1 IChainingModel
- 10.4.2 IComponentAssignedModel
- 10.4.3 IWrapModel
- 10.4.4 IComponentInheritedModel
- 10.4.5 IDetachable
- 10.4.6 IObjectClassAwareModel
- 10.4.7 IPropertyReflectionAwareModel
- 10.5 Model-Basisklassen
- 10.5.1 AbstractPropertyModel und PropertyModel
- 10.5.2 AbstractReadOnlyModel, ResourceModel und StringResourceModel
- 10.5.3 ComponentModel und ComponentDetachableModel
- 10.5.4 ComponentPropertyModel
- 10.5.5 CompoundPropertyModel
- 10.5.6 LoadableDetachableModel
- 10.5.7 Model
- 10.6 Chaining
- 10.7 Best Practices
- 11 Behavior
- 11.1 Das Prinzip
- 11.2 Kurzes Beispiel
- 11.3 Arten von Behaviors
- 11.3.1 AJAX
- 11.3.2 HTML/CSS
- 11.3.3 Formularvalidierung
- 11.3.4 Transformation
- 11.4 Fazit
- 12 IResource
- 12.1 ResourceBundles
- 12.2 Statische vs. dynamische Ressourcen
- 12.2.1 Statische Ressourcen, ResourceReferences und Internationalisierung
- 12.2.2 Dynamische Ressourcen
- 12.3 Cache-Steuerung
- 12.4 Fazit
- 13 IEventSink und IEventSource
- 13.1 Aufbau
- 13.2 AJAX-Events
- 13.3 Eigene Events
- 13.4 Fazit
- 14 Wicket Markup
- 14.1 Attribute
- 14.1.1 wicket:id
- 14.1.2 wicket:message
- 14.1.3 wicket:enclosure
- 14.1.4 wicket:for
- 14.2 Elemente
- 14.2.1 wicket:link
- 14.2.2 wicket:panel
- 14.2.3 wicket:fragment
- 14.2.4 wicket:border und wicket:body
- 14.2.5 wicket:extend und Element wicket:child
- 14.2.6 wicket:message
- 14.2.7 wicket:remove
- 14.2.8 wicket:head
- 14.2.9 wicket:enclosure
- 14.2.10 wicket:container
- 14.3 Markup und Vererbung
- 14.4 Fazit
- 15 AJAX
- 15.1 AjaxRequestTarget
- 15.1.1 AjaxRequestTarget verwenden
- 15.1.2 Komponenten neu rendern
- 15.1.3 Komponenten austauschen
- 15.1.4 Neue Komponenten einfügen
- 15.1.5 Weitere JavaScript-Aktionen
- 15.1.6 Parallele AJAX-Aufrufe
- 15.2 Aufbau und Erweiterung
- 15.2.1 Wicket-AJAX-Bibliothek
- 15.2.2 Eigene Callbacks implementieren
- 15.3 jQuery und Co.
- 15.4 Events und AttributeAppender
- 15.5 NoScript
- 15.6 Fazit
- Einleitung Teil 3: Integration mit DI-Frameworks
- 16 Spring-Integration
- 16.1 Einbinden und starten
- 16.2 Variante 1: Service Locator
- 16.3 Variante 2: @SpringBean
- 16.3.1 Aufbau und Funktionsweise
- 16.3.2 Einschränkungen
- 16.3.3 Unit Testing
- 16.4 Variante 3: Spring + AspectJ
- 16.4.1 Spring und AspectJ
- 16.4.2 Compile-Time vs. Load-Time Weaving
- 16.4.3 Wicket, Spring und AspectJ
- 16.4.4 JSR-330
- 16.4.5 Unit Testing
- 16.5 Fazit
- 17 Guice-Integration
- 17.1 Variante 1: GuiceComponentInjector
- 17.2 Variante 2: GuiceWebApplicationFactory
- 17.3 Verwendung
- 17.4 Fazit
- 18 CDI-Integration
- 18.1 Warum JEE 6?
- 18.2 Wicket und JEE 6
- 18.3 Scopes
- 18.4 wicket-cdi installieren
- 18.5 Aufbau einer wicket-cdi-Applikation
- 18.5.1 Maven Dependencies
- 18.5.2 Application für CDI vorbereiten
- 18.5.3 Verwendung JSR-330
- 18.5.4 Verwendung von JSR-299
- 18.6 Conversation Propagation
- 18.7 Fazit
- Einleitung Teil 4: ?Die Beispielapplikation
- 19 Die Anwendung
- 19.1 Ziel
- 19.2 Aufbau
- 19.3 Projektlayout
- 19.4 Spring-Kontext
- 19.5 Maven-Archetyp
- 20 Authentifizierung, Autorisierung und Auth-Roles
- 20.1 Wicket-auth-roles
- 20.2 Authentifizierung
- 20.2.1 Die Session
- 20.2.2 Die Application und der Login
- 20.3 Autorisierung
- 20.3.1 @AuthorizeInstantiation
- 20.3.2 @AuthorizeActions und @AuthorizeAction
- 20.4 Fazit
- 21 Unit Testing
- 21.1 Selenium und Co.
- 21.2 Definition
- 21.3 WicketTester-Beispiel
- 21.3.1 TestSignInPage.setUp()
- 21.3.2 TestSignInPage.tearDown()
- 21.3.3 TestSignInPage.renderSignInPage()
- 21.3.4 Testen mit wicket-authroles
- 21.4 WicketTester im Detail
- 21.4.1 Testen von Formularen
- 21.4.2 Testen von AJAX-Funktionen
- 21.5 Fazit
- 22 Formulare, Validierung und Feedback
- 22.1 Formulare und Eingabefelder
- 22.2 Formulare und IModel
- 22.3 Automatische Konvertierung von Eingaben
- 22.4 Validierung
- 22.4.1 Ablauf
- 22.4.2 Wicket-Validatoren
- 22.5 Schachtelung von Formularen
- 22.6 FeedbackPanel
- 22.6.1 FeedbackPanel und AJAX
- 22.7 JSR 303
- 22.8 Fazit
- 23 Repeater
- 23.1 AJAX-Vorgeplänkel
- 23.2 Loop
- 23.3 ListView
- 23.4 RepeatingView
- 23.5 RefreshingView
- 23.5.1 Datenbeschaffung via ModelIteratorAdapter
- 23.5.2 Wiederverwendung mit IItemReuseStrategy
- 23.5.3 Beispiel
- 23.6 Paging
- 24 Kopplung von Komponenten
- 24.1 Funktionsweise
- 24.2 Beispiel
- 24.3 Fazit
- 25 Bonus: jQuery und jQuery-UI
- 25.1 Integration
- 25.2 Verwendung
- 25.3 Effekte
- 25.4 Events ohne und mit AJAX
- 25.5 jQuery-Skripte bauen
- 25.5.1 JsQuery
- 25.5.2 JsStatement
- 25.5.3 JsScope
- 25.5.4 Beispiele
- 25.6 jQuery UI
- 25.6.1 Accordion
- 25.6.2 Tabs
- 25.7 Fazit
- 26 Weiter geht's ...
- Der Autor
System requirements
File format: PDF
Copy protection: without DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook does not use copy protection or Digital Rights Management.
For more information, see our eBook Help page.