Struts
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
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
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
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
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
- 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