Edit on GitHub

# Core Developers Guide

Struts 2 processes requests using three core types: interceptors, actions and results. Each may be configured via XML or annotations.

## Developing Applications with Struts 2

- Nutshell
- AJAX
- Dependency Injection
- Debugging
- Development Mode

## Configuration

- Configuration by Convention
- Annotations
- Configuration Elements
  - Actions, Wildcard Mappings, Beans, Constants
  - Exceptions, Includes, Interceptors
  - Namespaces, Packages, Results
  - Unknown Handlers, Dispatcher
- Configuration Files
  - web.xml
  - struts.xml
  - default.properties
  - struts-default.xml
  - velocity.properties
  - struts-default.vm
- OGNL Cache Configuration
- Application Servers
- Performance Tuning
- Security
- Testing Actions
  - (arsenalist)
  - (rosa)
- Interceptors
  - Writing Interceptors
  - Excluding Parameters
- Actions
  - Model Driven
  - Action Chaining
  - ActionEventListener
- Results
  - Result Types
  - DispatcherListener
  - PreResultListener
- Validation
- Localization
  - Formatting Dates and Numbers
- Type Conversion
- Static Content
- Portlets
  - [Tutorial] - export https://cwiki.apache.org/confluence/display/WW/Struts+2+Portlet+Tutorial
  - [Configuration/Documentation] - export https://cwiki.apache.org/confluence/display/WW/Portlet+Plugin
- Logging
- Accessing application, session, request objects
- Big Picture
  - ObjectFactory
  - Action Mapper
  - Action Proxy & ActionProxy Factory
  - Configuration Provider & Configuration
- FAQs
  - Struts 2 Maven Archetypes
  - [Cookbook]