Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applications over time.

Apache Struts 2 was originally known as WebWork 2. After working independently for several years, the WebWork and Struts communities joined forces to create Struts2. This new version of Struts is simpler to use and closer to how Struts was always meant to be.

Easy startup – Jumpstart new projects with our bootstrap tutorial and template application or Maven archetype.
Improved Design – Code clean against HTTP-independant framework interfaces.
Enhanced Tags – Code less with stylesheet-driven form tags that provide their own markup.
Stateful Checkboxes – Avoid special handling with smart checkboxes that know when they are toggled.
Flexible Cancel Buttons – Go directly to a different action on cancel.
First-class AJAX support – Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags.
Easy Spring integration – Inject dependencies into Actions using Spring without glue code or red tape. (Plexus support also available.)
Enhanced Results – Do more with speciality results for JasperReports, JFreeChart, Action chaining, and file downloading.
POJO forms – No more ActionForms! Use any JavaBean to capture form input or put properties directly on an Action class. Use both binary and String properties!
POJO Actions – Use any class as an Action class — even the interface is optional!

Struts 2 Architecture Diagram :-

Struts 2 Directory Structure  in Eclipse-

Reference link  this  and  this