contents


preface
acknowledgments
about this book
about the title
about the cover illustration

Part 1 Struts 2: a brand new framework

1 Struts 2: the modern web application framework
1.1 Web applications: a quick study
1.2 Frameworks for web applications
1.3 The Struts 2 framework
1.4 Summary
2 Saying hello to Struts 2
2.1 Declarative architecture
2.2 A quick hello
2.3 HelloWorld using annotations
2.4 Summary

Part 2 Core concepts: actions, interceptors, and type conversion

3 Working with Struts 2 actions
3.1 Introducing Struts 2 actions
3.2 Packaging your actions
3.3 Implementing actions
3.4 Transferring data onto objects
3.5 File uploading: a case study
3.6 Summary
4 Adding workflow with interceptors
4.1 Why intercept requests?
4.2 Interceptors in action
4.3 Surveying the built-in Struts 2 interceptors
4.4 Declaring interceptors
4.5 Building your own interceptor
4.6 Summary
5 Data transfer: OGNL and type conversion
5.1 Data transfer and type conversion: common tasks of the web application domain
5.2 OGNL and Struts 2
5.3 Built-in type converters
5.4 Customizing type conversion
5.5 Summary

Part 3 Building the view: tags and results

6 Building a view: tags
6.1 Getting started
6.2 An overview of Struts tags
6.3 Data tags
6.4 Control tags
6.5 Miscellaneous tags
6.6 Using JSTL and other native tags
6.7 A brief primer for the OGNL expression language
6.8 Summary
7 UI component tags
7.1 Why we need UI component tags
7.2 Tags, templates, and themes
7.3 UI Component tag reference
7.4 Summary
8 Results in detail
8.1 Life after the action
8.2 Commonly used result types
8.3 JSP alternatives
8.4 Global results
8.5 Summary

Part 4 Improving your application

9 Integrating with Spring and Hibernate/JPA
9.1 Why use Spring with Struts 2?
9.2 Adding Spring to Struts 2
9.3 Why use the Java Persistence API with Struts 2?
9.4 Summary
10 Exploring the validation framework
10.1 Getting familiar with the validation framework
10.2 Wiring your actions for validation
10.3 Writing a custom validator
10.4 Validation framework advanced topics
10.5 Summary
11 Understanding internationalization
11.1 The Struts 2 framework and Java i18n
11.2 A Struts 2 i18n demo
11.3 Struts 2 i18n: the details
11.4 Overriding the framework’s default locale determination
11.5 Summary

Part 5 Advanced topics and best practices

12 Extending Struts 2 with plug-ins
12.1 Plug-in overview
12.2 Common plug-ins
12.3 Internal component system
12.4 Writing a breadcrumb plug-in
12.5 Summary
13 Best practices
13.1 Setting up your environment 327
13.2 Unit-testing your actions
13.3 Maximizing reuse
13.4 Advanced UI tag usage
13.5 Summary
14 Migration from Struts Classic
14.1 Translating Struts Classic knowledge
14.2 Converting by piecemeal
14.3 Summary
15 Advanced topics
15.1 Advanced action usage
15.2 Dynamic method invocation
15.3 Using tokens to prevent duplicate form submits
15.4 Displaying wait pages automatically
15.5 A single action for CRUD operations
15.6 Tiles and Struts 2
15.7 Summary

 
index