Agenda

Introduction
Software Installation - Directory Structure - Build Instructions - Sample Application Analysis - Beans - JSF Pages - Navigation - Servlet Configuration - The Welcome File - Visual Development Environments - JSF Framework Services - Rendering Pages - Decoding Requests - The Life Cycle -
Automation of the Build Process with Ant - Using the Deployment Manager with Ant
Managed Beans
Definition of a Bean - Bean Properties - Value Binding Expressions - Message Bundles - Backing Beans - Bean Scopes - Request Scope - Session Scope - Application Scope - Configuring Beans - Setting Property Values - Initializing Lists and Maps - Chaining Bean Definitions - String Conversions -
The Syntax of Value Binding Expressions - Using Brackets - Map and List Expressions - Resolving the Initial Term - Composite Expressions - Method Binding Expressions
Navigation
Static Navigation - Dynamic Navigation - Advanced Navigation Issues - Redirection - Wildcards -
Using from-action - The Navigation Algorithm
Standard JSF Tags
Forms - Form Elements and JavaScript - Text Fields and Text Areas - Using Text Fields and Text Areas - Displaying Text and Images - Hidden Fields - Buttons and Links - Selection Tags - Checkboxes and Radio Buttons - Menus and Listboxes - Items - Messages - Panels
Data Tables
h:dataTable Attributes - Headers and Footers - JSF Components in Table Cells - Editing Table Cells - Styles for Rows and Columns - Styles by Column - Styles by Row - Database Tables - JSTL Result vs. Result Sets - Table Models - Editing Table Models - Sorting and Filtering - Scrolling Techniques - Scrolling with a Scrollbar - Scrolling with Page Widgets
Conversion and Validation
Using Standard Converters - Conversion of Numbers and Dates - Conversion Errors -
A Complete Converter Example - Using Standard Validators - Validating String Lengths and Numeric Ranges - Checking for Required Values - Displaying Validation Errors - Bypassing Validation - A Complete Validation Example - Programming with Custom Converters and Validators - Implementing Custom Converter Classes - Implementing Custom Validator Classes - Registering Custom Validators - Validating with Bean Methods - Validating Relationships Between Multiple Components - Implementing Custom Tags -
Custom Converter Tags - Custom Validator Tags
Subviews and Tiles
Common Layouts - Monolithic JSF Pages - Common Content Inclusion - Content Inclusion in JSP-Based Applications - JSF-Specific Considerations - Installing Tiles - Parameterizing Tiles - Extending Tiles - Nested Tiles - Tile Controllers
Custom Components
Implementing Custom Components with Classes - Tags and Components - The Custom Component Developers Toolbox - Encoding: Generating Markup - Decoding: Processing Request Values - Using Converters - Implementing Custom Component Tags - Using an External Renderer - Calling Converters from External Renderers - Supporting Value Change Listeners - Supporting Method Bindings -
Encoding JavaScript to Avoid Server Roundtrips - Using Child Components and Facets - Processing SelectItem Children - Processing Facets - Including Content - Encoding CSS Styles - Using Hidden Fields -
Saving and Restoring State - Firing Action Events - Using the Tabbed Pane
Trainer

Herr Karsten Thüer studierte Angewandte Informatik an der Fachhochschule Gelsenkirchen mit dem Schwerpunkt Betriebliche Informationssysteme. Er arbeitet seit mehr fast 10 Jahren als Projektleiter und Berater/Trainer für Software-Entwicklung mit Java-Technologien.
Projects
Projektleitung und Koordination eines ERP-Systems zur Distribution und Verwaltung von Online-Werbung. Programmierung und Co-Projektleitung eines Trouble-Ticket-Systems mit Inventarisierung für pädagogische Einrichtungen. Machbarkeitsstudie über die Entwicklung eines Open-Source CRM-Systems. Projektplanung und Controlling eines Open-Source CRM-Systems für mittelständische Unternehmen. Prozessanalysen und Aufwandsschätzung für ein SAP/R3 System im Rohstoffsektor. Co-Projektleitung, Architektur- und Designentwicklung sowie Programmierung eines sozialen Netzwerkes für den Einsatz im Intranet bei mittelständischen Unternehmen. Koordination und Entwicklung einer FX-Trading Plattform. Leitung und fachliche Architektur eines Führungsprozess-Portals
