Struts
Struts Architecture and Overview
- Introduction to Struts
- Objectives
- Review: MVC model
- What is Struts?
- Struts flow
- Components in Struts?
- The Model
- The View
- The Controller
- struts-config.xml
- The
element - The
element - The
element - The
element - Sample
- The
- The role of web.xml for the application
- Configuring Struts in web.xml
- web.xml content
- Steps to configuring Struts in web.xml
- Sample
- Summary
A Simple Struts Aplication
- The Goal of the Application
- The input form• The struts-config.xml
- The Form Bean class
- The Action class
- The result page
Struts Features in Eclipse
- Objectives
- Struts binary distribution
- Directory structure of Struts application
- Example
- Eclipse support for Struts
- Developing a web application using Eclipse features of Struts
Struts Development Cycle
- Objectives
- Struts development cycle
- Gathering requirements
- Defining screen requirements
- Data vs. FormBean
- Define FormBean
- Determining the screen flow
- Defining the ActionMappings in struts-config.xml
- Developing the FormBean
- The reset ( ) method
- Form validation using the validate ( ) method
- ActionError
- Define message key
- Developing Action Class
- Action and Action Class
- The execute() method
- ActionForward
- ActionMapping class
- execute() example
- Example execute() method
- Developing business logic - EJB
- Developing JSPs
- Configuring struts-config.xml and web.xml
- Build, pack and deploy
Struts Tag Libraries
- Objectives
- JSP taglib directive
- Components of a tag library
- The JSP File
- The tag library descriptor
- The tag Handler Class
- An example
- The TLD File - carPrice.tld
- TDL File - example
- The Handler Class - CarPriceHandler.java
- The Handler Class - example
- The JSP File - Carprice.jsp
- Tag Lib Handler life cycle
- Directory structure: where custom tag libraries fit
- Struts TagLib
- Bean tags
- bean:message
- bean:define
- bean:page
- bean:include
- bean:cookie
- HTML tags
- html:form
- html:submit
- html:text
- html:link
- html:password
- Logic tags
- Functionality
- logic:equal
- logic:iterate
- Template tags
Struts Plugin, Internationalization and Error Handling
- Objectives
- Struts plugins
- Creating a plugin
- Configuring a plugin
- Internationalization
- Struts Internationalization Mechanisms
- Adding internationalization to the example application
- Formatting messages
- Error Handling
- Struts Error Handling Mechanisms
- ActionError and ActionErrors
- Error handling from a form bean
- Error handling from an action
- Formatting error messages
- Struts exception handling
- Adding error handling to the example application
Miscellaneous Advanced Features
- Objectives
- HTTP Redirection
- Dealing with check boxes
- Context sensitive form validation
- DispatchAction
- BeanUtils package
- Digester package
- DynaActionForms
- Multi-application support
- Validators
Database Programming
- Configuring and using a Struts Data Source
- Using a J2EE Data Source
- Transaction management from an action
- Sharing a connection with the model classes
- Pre-populating a form for editing data
- Paginated listing of large amounts of data
Database Programming
- Objectives
- Struts Templates
- Template tags - insert, get and put
- Struts 1.1 tiles support
- Inheritance in tiles definitions
- JSTL overview
- JSTL and Struts
Unit Testing Struts Applications – Struts Test Case
- Objectives
- What is JUnit?
- A sample JUnit test case
- A simple StrutsTest test case
- Executing a StrutsTest test
- Testing strategies
JSTL
- Objectives
- The future of Struts Tags
- JSTL - What does it provide?
- JSTL actions
- Core JSTL tags
- Formatting tags
- Database tags
- XML tags
- JSTL Expression Language
- JSTL Implicit Objects
Hibernate 3.0/4.0
Introduction
- What is Hibernate?
- Object Relational Mapping
- JDBC v/s Hibernate
- Installing Hibernate
- Using Hibernate with an IDE
Getting Started
- POJOs and Persistence
- Creating Hibernate Mappings
- Configuration
- Session Factory
- Session
- Working with Entities
- Transactions
- Queries
- Tying Everything Together
Mapping with Annotations
- Introduction to Annotations
- Annotation Pros and Cons
- Using Annotations in Your Application
- Mapping Entities and Tables
- Mapping Columns and Data Types
- Mapping Associations
- Mapping Collections
Mapping with XML
- Mapping Entities and Tables
- Mapping Columns and Data Types
- Mapping Associations
- Mapping Collections
Working with Persistent Objects
- Object states in Hibernate
- Common Hibernate Methods
- Working with Entities
- Working with Bidirectional Associations
- Flushing the Session
- Cascading Operations
- Orphans
- Lazy Associations
Querying with HQL
- The Hibernate Query Language
- Retrieving Data
- Using Operators
- Sorting Results
- Using Aggregate Functions
- Grouping Results
- Using Joins
- Using Parameters
Transactions
- Hibernate and Thread-Safety
- Introducing the Hibernate Util Class
- Committing and Rolling Back Transactions
Spring
Entities And Java Persistence API
- Data Persistence
- Java Persistence API
- Entities
- Session Beans v/s Entities
- Entities
- Persisting and Retrieving Data
- Accessing Entities
- Entity Manager & Persistence Unit
- Persistence Context
- Entities - Example
- persistence.xml – Hibernate Provider
- persistence.xml – Open JPA Provider
- persistence.xml - Toplink
- Entity Instance Lifecycle
- Creating Entity Manager in Session EJB
- Creating Entity Manager in a Plain Java Class
- Working With the Entity Manager Interface
- Transaction Basics
- Summary
Using Spring With JPA or Hibernate
- Spring ORM
- Benefits of Using Spring with ORM
- Spring @Repository
- Using JPA with Spring
- Configure Spring JPA Entity Manager Factory
- Using JNDI to Lookup JPA Entity Manager Factory
- Local Container Entity Manager Factory Bean
- Local Entity Manager Factory Bean
- Application JPA Code
- Hibernate
- Hibernate Session Factory
- Spring Local Session Factory Bean
- Application Hibernate Code
- "Classic" Spring ORM Usage
- Spring JpaTemplate
- Spring JpaCallback
- JpaTemplate Convenience Features
- Spring Hibernate Template
- Spring Hibernate Callback
- Hibernate Template Convenience Methods
- Summary
Spring MVC
- Spring MVC
- Spring MVC Components
- DispatcherServlet
- Context Loaders
- Spring MVC Example
- Mapping Web Requests
- BeanNameUrlHandlerMapping
- CommonsPathMapHandlerMapping
- Using Multiple Handler Mappings
- Controller Hierarchy
- AbstractCommandController
- SimpleFormController
- AbstractWizardFormController
- MultiActionController
- ThrowawayController
- View Resolution
- InternalResourceViewResolver
- BeanNameViewResolver
- XmlViewResolver
- ResourceBundleViewResolver
- Using Multiple View Resolvers
- Binding Views to Models
- Spring Form Tags
- form and input Tags
- password and hidden Tags
- checkbox Tag
- radiobutton Tag
- textarea Tag
- select Tag
- option Tag
- options Tag
- errors Tag
Tiles Web Application Templates
- Apache Tiles
- Configuring Tiles in Spring
- Tiles URL-based View Resolver
- Tiles ViewPreparer
- Tiles ViewPreparer Configuration
Alternate Content With Spring Web Apps
- Creating Excel Spreadsheets
- Creating PDF Documents
- Creating Other Non-HTML Documents
- Summary
Introduction To Spring Web Flow 2
- What is Spring Web Flow 2?
- Relationship to Spring and Spring MVC
- Spring Web Flow 2 Modules
- Integration Support
- What is a Flow?
- Book Hotel Flow Example
- Book Hotel Flow Definition
- Benefits of Spring Web Flow 2
- Required Software
- Configuration Steps
- JAR File Instructions
- Configure web.xml
- Spring Web Flow Components
- Sample Spring Web Flow Configuration File
- Summary
Defining Flows
- Recap: What is a Flow?
- Recap: Book Hotel Flow Example
- Flow Definition Language
- Skeletal Flow Definition
- States
- View State
- Transitions
- Generating Events
- Generating Events using Submit Button
- Generating Events using Links
- End States
- Actions
- When do Actions Occur?
- Putting it all Together
- Introduction to Unified Expression Language
- Unified Expression Language Functionality
- Unified Expression Language Implicit Variables
- Flow Instances
- Flow Variables
- Variable Scopes
- Assigning and Accessing Variables
- Flow Input
- Binding a View to a Model
- Summary
Using JSF With Spring
- JSF Integration Options
- DelegatingVariableResolver
- SpringBeanVariableResolver
- SpringBeanFacesELResolver
- Spring Bean Scopes
- FacesContextUtils
- JSF with Spring Web Flow
Spring Security
- Securing Web Applications with Spring Security 3.0
- Spring Security 3.0
- Authentication and Authorization
- Programmatic v Declarative Security
- Getting Spring Security from Maven
- Spring Security Configuration
- Spring Security Settings in Spring Configuration
- Basic Web Security Configuration
- Granting Anonymous Access to Pages and Resources
- Requiring Encrypted HTTPS Communication
- Customizing Form-based Login
- Custom Login Page
- Configure Logout
- Session Management
- Selectively Display Links in a JSP
- Method Level Security
- Authentication Manager
- Using Database User Authentication
- LDAP Authentication
- Encoding Passwords
- Using an External Authentication Provider
- Summary
Introduction to AJAX
- What is AJAX?
- A Simple Example
- The Old Way
- The AJAX Way
- Two Key Aspects of AJAX
- What are the Advantages of the AJAX Approach?
- AJAX Technologies
- The Basic AJAX API
- Creating the XMLHttpRequest Object
- The XMLHttpRequest Object Basics
- Complete Example
- The Timeline
- Review Questions
- Review Answers
Using Javascript With Spring
- Spring JavaScript
- Relationship to Dojo
- Serving JavaScript Resources
- Including Spring JavaScript
- Spring JavaScript Decorations
- DijitValidationTextBox Decoration
- DijitDateTextBox Decoration
- Spring ValidateAllDecoration
- Handling Ajax Requests with Spring MVC
- Handling Ajax Requests with Spring Web Flow
- Summary
Spring Rest Services
- Many Flavors of Services
- Understanding REST
- RESTful Services
- REST Resource Examples
- REST vs SOAP
- Relation to Spring MVC
- Adding REST Capability to Existing Spring MVC Applications
- RestTemplate
- HTTP Message Conversion
- Summary
Review Of New Features In Spring 3.0
- Requirements and Supported Environments
- Using Spring with Servers
- Packaging
- Spring Expression Language
- Java-based Configuration
- Annotation-based Configuration
- Spring MVC Changes
- New Spring MVC Configuration
- Spring MVC Annotation Example
- Validation
- Summary