Part 1 Struts 2: a brand new framework. Struts 2: the modern web application framework
Web applications: a quick study
Frameworks for web applications
The Struts 2 framework
Saying hello to Struts 2
Declarative architecture
A quick hello
HelloWorld using annotations
Part 2 Core concepts: actions, interceptors, and type conversion . Working with Struts 2 actions
Introducing Struts 2 actions
Packaging your actions
Implementing actions
Transferring data onto objects
File uploading: a case study
Adding workflow with interceptors
Why intercept requests?
Interceptors in action
Surveying the built-in Struts 2 interceptors
Declaring interceptors
Building your own interceptor
Data transfer: OGNL and type conversion
Data transfer and type conversion: common tasks of the web application domain
OGNL and Struts 2
Built-in type converters
Customizing type conversion
Part 3 Building the view: tags and results. Building a view: tags
Getting started
An overview of Struts tags
Data tags
Control tags
Miscellaneous tags
Using JSTL and other native tags
A brief primer for the OGNL expression language
UI component tags
Why we need UI component tags
Tags, templates, and themes
UI Component tag reference
Results in detail
Life after the action
Commonly used result types
JSP alternatives
Global results
Part 4 Improving your application. Integrating with Spring and Hibernate/JPA
Why use Spring with Struts 2?
Adding Spring to Struts 2
Why use the Java Persistence API with Struts 2?
Exploring the validation framework
Getting familiar with the validation framework
Wiring your actions for validation
Writing a custom validator
Validation framework advanced topics
Understanding internationalization
The Struts 2 framework and Java i18n
A Struts 2 i18n demo
Struts 2 i18n: the details
Overriding the framework’s default locale
determination
Part 5 Advanced topics and best practices
Extending Struts 2 with plug-ins
Plug-in overview
Common plug-ins
Internal component system
Writing a breadcrumb plug-in
Best practices
Setting up your environment 327
Unit-testing your actions
Maximizing reuse
Advanced UI tag usage
Migration from Struts Classic
Translating Struts Classic knowledge
Converting by piecemeal
Advanced topics
Advanced action usage
Dynamic method invocation
Using tokens to prevent duplicate form submits
Displaying wait pages automatically
A single action for CRUD operations
Tiles and Struts 2.