Struts2 Training

Model 1 and Model 2 Architectures

  • Comparing model1 and model 2
  • Idea about various model2 frameworks

Getting started with Struts 2

  • Benefits of Strus2
  • A Simple Struts 2 application
  • How Struts works . A Basic flow
  • Struts Configuration files
  • Struts.xml,,,struts-default.xml

Configuring Struts 2

  • Actions, results and interceptors
  • Categorizing requests with namespaces and packages
  • Exploiting zero configuration conventions
  • Exception Mappings

Implementing Struts 2 Action

  • Utilizing the Action Support base class
  • Wild Card mappings
  • Dynamic method Invocation
  • Eliminating redundant code with ModelDriven actions

Simplifying the development process

  • Best practices for unit testing your actions
  • Improving maintainability through message localization

Object Graph Navigation Language (OGNL)

  • Push-pull processing of the model with OGNL
  • Reading and writing object properties
  • Accessing complex types: lists, sets and maps

Manipulating data on the Value Stack

  • Navigating complex graphs with OGNL operators
  • Invoking non-property methods

Struts Tags

  • Form Tag
  • TextField,password,submit,reset,label Tags
  • list,listkey,listvalue attributes
  • Check box, Check box list,radio,select tags
  • Property tag,atag,actiontag,beantag,datetag,include tag,
  • set tag, push tag, url tag
  • if, else, elseif tags
  • Iterator tag

Message Handling and Internatinalization

  • Locales and Resourcde Bundles
  • Internationalization and Localization

Type Conversion

  • Customizing custom error messages

Input Validation

  • Programmatic Validation with Validateable
  • Validator overview
  • Validator configuration in validation.xml
  • Examples for some prebuilt validators like
  • required validator,requiredstring
  • stringlength,int,date,email
  • Client side validation with Javascript using validators
  • Writing custom validators


  • Close look at various interceptors and interceptor stack configurations
  • Model Driven and Preparable interceptors
  • Writing custom interceptors

Zero configuration

  • Struts using annotations
  • The code behind plugin