Chapter 1 - Introduction to JavaServer Faces
|
|
- What is JavaServer Faces (JSF)?
- Why Use JSF?
- Nature of a JSF Application
- The Sun Reference Implementation (RI)
- JSF and MVC
- Faces Servlet
- Managed Bean
- The View
- A Simple JSF Application
- The Input Form: form.jsp
- The Result: thanks.jsp
- The Controller: AddressBean
- Page Flow or Navigation Rule
- How Does the Application Work?
- How Does the Application Work?
- Under the Covers: The Rendered Form HTML
- Under the Covers: The Layout Tree
|
|
Chapter 2 - Managed Bean
|
|
- What is a Managed Bean?
- Why Do You Need Managed Beans?
- Managed Bean As a Controller
- Registering a Managed Bean
- Lifecycle of a Managed Bean
- Initializing a Managed Bean
- What Scope to Use?
- Value Binding
- Property Data Conversion
- Advanced Property Types
- Advanced Property Types
- Component Binding
- Other Binding Types
- Basic Input Processing
- Advanced Input Processing
- JSF Expression Language
- Language Basics
- Use of Expression in JSF
- Basic Expression
- Property Access Expression
- Map Access Expression
- Complex Access Expression
- Predefined Objects
- Operators
|
|
Chapter 3 - User Interface Components
|
|
- JSF UI Components
- JSF Component Tag Libraries
- Using the Tag Libraries
- HTML Tag Library
- Identifying Components
- Component Identifier
- Client Identifier
- Form Input Field Names
- Define a Form
- Labels and Images
- Buttons
- Links
- Adding Parameters to Links
- Text Input
- Simple Check Box
- Check Box Group
- Check Box Group Example
- Radio Button
- List Boxes
- Dynamic List Box
- Example
- Another Example
- JSF Core Library
- JSF Core Library - Components
- JSF Component Model
- Base Class Hierarchy
- Useful Base Classes
- Useful HTML Classes
|
|
Chapter 4 - JSF Event Handling
|
|
- Request Processing Phases
- Action Request Processing Phases
- JSF Event & Listener Model…
- JSF Event Classes
- Event Classes
- Event Classes: Hierarchy
- Action Event Handling
- Action Event: Example
- Action Listener
- Value Change Event
- Value Change Event Handler
- Listener Classes
- Listener Interfaces
- Listener Classes: Hierarchy
- Action Listener Class
- Value Change Listener Class
- Phase Event Listener
- Request Processing Lifecycle
- Phase Identifiers
|
|
Chapter 5 - JSF Navigation
|
|
- JSF Navigation
- Example Action Listener
- faces-config.xml File
- JSF Navigation
- Navigation Rules: Example
- Choosing Between Redirect & Direct Rendering
- Navigation: Scenarios
|
|
Chapter 6 - Validation
|
|
- Introduction
- Validation
- Standard Validators
- <f:validateLength>
- <f:validateDoubleRange>
- <f:validateLongRange>
- Checking for Required Values
- Showing Validation Error Messages
- Customizing Standard Error Messages
- Standard Validation Error Messages
- Validation Process
- Sequence Diagram
- Bypassing Validation
- Immediate Command Components
- Immediate Input Components
- Accessing User Input
- Immediate Command Component Example
- Immediate Input Component Example
- Advanced Field Validation
- Advanced Error Handling
|
|
Chapter 7 - Advanced GUI Components
|
|
- HTML Panel
- Applying Styles
- Grouping Components
- Data Table
- Using a Data Table
- Data Table Model
- Using a Data Table
- Displaying a Header and Footer Row
- Applying Styles
- Adding Links to a Row
- Using Component Binding
- Handling Action
- Using the Data Table Model
- Handling Action
|
|
Chapter 8 - JSF Techniques
|
|
- A Typical Application
- The Create Form
- Create Action Method
- Listing Items
- Editing an Item
- Adding the Edit Link
- The Edit Form
- Update Item
- Things to Keep in Mind
|
|
Chapter 9 - Introduction to Facelets
|
|
- Constructing and Rendering a View (JSP way)
- Facelets
- Getting Facelets
- Using Facelets
- Page Templates
- Define a Page Template
- Run the Template Client
- Summary
|
|
Chapter 10 - Introduction to the Spring Framework
|
|
- What is the Spring Framework?
- Spring Characteristics
- Spring Modules
- Why Spring?
- Problems with EJB
- Spring Philosophies
- Alternatives to Spring
- Simple Example
- What is Inversion of Control?
- IoC Example
|
|
Chapter 11 - Spring Dependency Injection
|
|
- Spring Containers
- Bean Creation
- Bean Destruction
- Wiring Beans
- Bean Element
- Dependency Injection – Primitives and Strings
- Dependency Injection - References
- Dependency Injection – Inner Beans
- Dependency Injection – Lists, Arrays and Sets
- Dependency Injection – Maps
- Dependency Injection - Properties
- Constructor Injection
- Constructor Injection – Handling Multiple Arguments
- Constructor vs. Setter Injection
- Autowiring
- Autowiring Example
- Autowiring
- Mixing Explicit and Autowiring
- Special Spring Interfaces
- BeanPostProcessor
- BeanFactoryPostProcessor
- PropertyPlaceholderConfigurer
- CustomEditorConfigurer
- Awareness Interfaces
- Listening For and Publishing Events
- XML Schema-based Configuration
- XML Schema – jndi Example
- XML Schema – util Example
|
|
Chapter 12 - Database Integration and Transaction Management
|
|
- DAO Support in Spring
- DataAccessException
- Using DataSources
- DAO Templates
- DAO Templates and Callbacks
- Using Spring with JDBC
- Writing Data with JdbcTemplate
- Reading Data with JdbcTemplate
- Reading Single-Row Scalar Data
- Spring 2.5 NamedParameterJdbcTemplate
- ORM Tool Support in Spring
- Hibernate
- Hibernate Session Factory
- Spring LocalSessionFactoryBean
- Spring HibernateTemplate
- Spring HibernateCallback
- HibernateTemplate Convenience Methods
- LocalEntityManagerFactoryBean
- Spring JpaTemplate
- Spring JpaCallback
- JpaTemplate Convenience Features
- Transactions
- Transaction Management in Spring
- Spring Transaction Managers
- Programmatic Transactions
|
|
Chapter 13 - Introduction to Hibernate
|
|
- What is Hibernate?
- Relational Database Technology
- Accessing Relational Databases from Java
- Domain Models
- Comparing Object and Relational Models
- Identity Modeling
- Granularity of Objects and Tables
- Association Modeling
- Navigation
- Inheritance
- What is Object/Relational Mapping?
- Advantages of using an ORM Tool
- Architecture of Hibernate
- Architecture of Hibernate
- Hibernate API
- Extension Interfaces
- Hibernate Configuration
- Hibernate Mappings
- Hibernate Properties
- Hibernate XML Configuration Files
- Non-Managed and Managed Environments
- Configuration in a Non-Managed Environment
- Configuration in a Managed Environment
- Binding SessionFactory to JNDI
- A Simple Example
- Alternatives to Hibernate
- EJB Entity Beans
- Java Persistence API
- Hand-Coded Persistence Using JDBC
- Object-Oriented Databases
- Other ORM Tools
|
|
Chapter 14 - Basic Mappings
|
|
- Creating the Domain Model
- Domain Model
- Domain Objects
- Hibernate Requirements
- Object Identity
- Primary Keys
- Natural Keys vs. Surrogate Keys
- Identifier Property
- Identifier Generators
- Hibernate Managed Identifiers
- Mapping Metadata
- Mapping Properties
- Property Access Strategies
- Derived Properties
- Preventing Insert/Update
- Using Database Schemas
- Quoted SQL Identifiers
- Specifying Java Packages
- Entity and Value Types
- Components
- Bi-Directional Components
- Other Component Details
- Association Mappings
- Many-to-One Association
- One-to-Many Association
- Inheritance Mapping Strategies
- Table per Concrete Class
- Table per Subclass
- Table per Class Hierarchy
|
|
Chapter 15 - Manipulating Persistent Objects
|
|
- Object States
- Transient Objects
- Persistent Objects
- Detached Objects
- Object Identity
- Persisting a Transient Object
- Retrieving and Updating a Persistent Object
- Deleting a Persistent Object
- Updating a Detached Object
- Transitive Persistence
- Using save-update
- Differentiating Between Transient and Detached Objects
|
|
Chapter 16 - Advanced Mappings
|
|
- One-to-One Associations
- Many-to-Many Associations
- Polymorphic Associations
- Entity vs. Value Types
- Built-in Mapping Types
- Using Mapping Types
- Custom Mapping Types
- Collections of Value Types
- Set of Value Types
- Bag of Value Types
- List of Value Types
- Map of Value Types
- Collections of Components
- Sorting Collections
- Sorting Collections
|
|
Chapter 17 - Hibernate Queries
|
|
- HQL Queries
- Parameter Binding
- Pagination
- Named Queries
- Polymorphic Queries
- Restriction
- String Comparison
- Logical Operators
- Ordering the Results
- Join Queries
- Join Queries
- Implicit Joins
- Where Clause Joins
- Criteria Queries
- Polymorphic Criteria Queries
- Restricting Criteria Queries
- Comparing Strings in Criteria Queries
- Using Logical Operators in Criteria Queries
- Ordering Results in Criteria Queries
- Using Joins in Criteria Queries
- Using Dot Notation to Get Component Properties
|
|
Chapter 18 - Transactions, Concurrency and Performance
|
|
- Database Transactions
- JDBC and JTA Transactions
- Hibernate Transactions
- Flushing the Hibernate Session
- Isolation Issues
- Isolation Levels
- Configuring the Isolation Level
- Pessimistic Locking
- Application Transactions
- Application Transaction Isolation
- Managed Versioning
- Using Existing Properties to Implement Optimistic Locking
- Caching
- Hibernate Cache Architecture
- The First-Level Cache
- The Second-Level Cache
- Cache Concurrency Strategies
- Enabling the Second-Level Cache
- Cache Regions
- Specifying a Cache Provider
- Support for Cache Providers
- Explicitly Evicting Objects From the Second-Level Cache
- Fetching Strategies
- Fetching Strategies in Mappings - Single Point Associations
- Fetching Strategies in Mappings - Collections
- Fetching Strategies in Mappings - Batches
- Explicit Initialization of Lazily Loaded Objects
- Fetching Strategies in HQL Queries
- Fetching Strategies in Criteria Queries
- The N+1 Selects Issue
- The N+1 Selects Issue
- Report Queries - Projections
- Report Queries - Aggregation
- Report Queries - Grouping
|
|
Chapter 19 - Using JSF with Spring
|
|
- JSF Integration Options
- DelegatingVariableResolver
- SpringBeanVariableResolver
- SpringBeanFacesELResolver
- Spring Bean Scopes
- FacesContextUtils
- JSF with Spring Web Flow
|