Course Description
The goal of Struts2 is to make web development easier for the
developer. To achieve this goal Struts2 provides features to reduce XML
configuration files, utilizes annotations. Actions are POJOs which
increases testability and reduces coupling in the framework.
In this course you gain knowledge of the Struts 2 architecture and
exercises will give you a solid knowledge of all components of the
Struts 2 framework.
Prerequisites
This course is intended for Java Developers who are familiar with JSP and have basic knowledge of XML.
Module 1: Introduction to Struts 2 Framework
Introduction
What is a Framework?
Struts 2 Overview
Struts 2 Implementation of MVC
Processing Request
Model – Action
View – Result
Interceptors
Exception Handling
The ValueStack and ONGL
Advantages of Struts 2
Struts 2 vs. Struts 1
Module 2: Struts 2 Architecture
Two Ways of Declaring Architecture
Declarative Architecture
XML Based Declarative Architecture
The struts.xml file
The struts.xml file – include tag
The struts.xml file – package tag
Actions
Actions –Single Result
Actions –Multiple Results
Request and Form Data
Accessing Business Services
Accessing Data from the Action
Value Stack
Example
Exercise
Module 3: Struts Configuration File
Overview
The struts.xml File (package element)
Package Inheritance
The struts.xml File (include element)
The struts.xml File (action element)
The struts.xml File (result element)
The global-results Elements
Results
Namespace Configuration
Namespace Example
The interceptor-related Elements
Exercise
Module 4 : Action Classes
Action
What Does an Action Do?
Encapsulates Interaction with the Model
Provides Locus for Data Transfer
Returns Control String for Result Routing
Packaging Your Actions
Implementing Action class
ActionSupport Class
ActionSupport Class validate method
Using Resource Bundles
Accessing Resources
Aware Interface
ServletContextAware Interface
ServletRequestAware Interface
SessionAware Interface
ServletResponseAware Interface
Example
Exercise
Module 5: The Persistence Layer
JDBC
Overview of JDBC
Connecting to the DataBase
Submitting the SQL statements
Retrieving and processing data
DB_Action Class
Data Access Object
Exercise
Hibernate
Overview
Hibernate
Architecture Of Hibernate
Code Example
Creating Persistent Java Objects
Mapping Persistent Object
Hibernate Configuration File
Inserting new record
Querying the database
Example
Exercise
Java Persistence API (JPA)
Introducing JPA
Hibernate And JPA
Using Annotation
Using Hibernate EntityManager
persistence.xml
Hibernate_JPA Project
Example
Module 6: The Interceptors
Overview
Invocation of an Action
ActionInvocation Class
Built-in Struts 2 interceptors
Configuring Interceptors (struts.xml)
Setting and Overriding Parameters
Interceptor Interface
Create Your Own Interceptor
Example
Exercise
Module 7: Type Conversion
Introduction
Build in Converters
Primitives And Wrapper Classes
Customizing Error Messages
Custom Type Converters
Configuring the framework
Example: Custom Type Converters
Exercise
Global Type Converters
Module 8: OGNL and Tags Library
Introduction
OGNL and Struts 2
The Value Stack
The ActionContext
Expression Language
Reading Value Stack Object Properties
Selecting The Root Object For OGNL
ValueStack Details
An overview of Struts tags
Using OGNL to Set Attributes on Tags
The property tag
The set tag
bean Tag
UI Struts Tag Library
UI Input Tags
The Form Tag
The textfield, password Tags
The submit Tag
The reset Tag
The checkbox Tag
Non UI (Generic) Tags
if Tag
iterator Tag
Module 9: Validation Framework
Overview
Using a Validator
Validator Configuration
Validator Configuration (param)
Strurs Build-in Validators
Date validator
double Validator
requiredstring Validator
Example
Exercise
Writing a Custom Validator
Example
Exercise
Module 10: Internationalization
Introduction
Java Support for I18n
Struts 2 Support of i18n
Request_locale Parameter
Example
Exercise
Module 11: Inversion of Control
Introduction
Dependencies
Injecting Dependencies
Setter Injection
Problem Description
Adding Spring to Struts 2
Web.xml
applicationContext.xml
struts.xml After Integration
Example
Exercise
Module 12: Advanced Topics
Alternative Method Invocation
Wildcard Method
Dynamic Method Invocation
Module 13: Securing Struts 2 Applications (Part 1)
Overview
How Web Security Works
Security Definitions
The Four Checks
Filters
FilterToBeanProxy
FilterChainProxy
Configuration
The Filter Chain
AuthenticationProcessingFilter
The HttpSessionContextIntegrationFilter
The ExceptionTranslationFilter
FilterSecurityInterceptor
AuthenticationManager
AccessDecisionManager
AuthenticationEntryPoint
Securing Web Resources
Example
Securing Method Invocation
Example
View-layer security
Example
Summary
Module 14: Securing Struts 2 Applications (Part 2)
What is Spring Security 2.0?
web.xml Changes
web.xml
A Minimal <http> Configuration
<http> Tag
<authentication-provider> Tag
Adding a Password Encoder
Example: Securing Web Resources
Method Security
The <global-method-security> Tag
@Secured Annotation
Example: Method Security
Adding Security Pointcuts using protect-pointcut
The intercept-methods Bean Decorator
View-layer security
Example
Summary
Appendix Servlets And JSP Filters